package com.project.common.wxv3;
|
|
import com.alibaba.fastjson2.JSONObject;
|
import com.github.binarywang.wxpay.config.WxPayConfig;
|
import com.github.binarywang.wxpay.constant.WxPayConstants;
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
import com.github.binarywang.wxpay.service.WxPayService;
|
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
import lombok.extern.slf4j.Slf4j;
|
|
@Slf4j
|
public class TestV3 {
|
public static void main(String[] args) {
|
WxPayConfig wxPayConfig = new WxPayConfig();
|
wxPayConfig.setMchId("1645270007");
|
wxPayConfig.setAppId("wx40ebd17aea073b38");
|
wxPayConfig.setMchKey("tengchongshengshangzhubaov220235");
|
wxPayConfig.setApiV3Key("tengchongshengshangzhubaov320235");
|
wxPayConfig.setCertSerialNo("72F430196D56F577885A9636E1D92B3E14ACB07E");
|
wxPayConfig.setKeyPath("D:\\Gem\\project-admin\\src\\main\\resources\\pay\\wxv3\\apiclient_cert.p12");
|
wxPayConfig.setPrivateCertPath("D:\\Gem\\project-admin\\src\\main\\resources\\pay\\wxv3\\apiclient_cert.pem");
|
wxPayConfig.setPrivateKeyPath("D:\\Gem\\project-admin\\src\\main\\resources\\pay\\wxv3\\apiclient_key.pem");
|
|
// 小程序支付
|
wxPayConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
|
|
WxPayService wxPayService = new WxPayServiceImpl();
|
wxPayService.setConfig(wxPayConfig); //微信配置信息
|
|
// 官方接口文档地址- https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter4_1_1.shtml
|
String url = "/v3/pay/transactions/jsapi";
|
try {
|
JSONObject jsonObject = WxpayV3Util.unifiedOrderV3(url, param(), wxPayService);
|
log.info("支付返回:{}", jsonObject);
|
} catch (WxPayException e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
private static JSONObject param() {
|
String payOrderId = "12345678903423534539";
|
|
// 微信统一下单请求对象
|
JSONObject reqJSON = new JSONObject();
|
reqJSON.put("out_trade_no", payOrderId);
|
reqJSON.put("description", "我是一个商品");
|
// 订单失效时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,示例值:2018-06-08T10:34:56+08:00
|
// reqJSON.put("time_expire", String.format("%sT%s+08:00", DateUtil.format(orderPay.getExpiredTime(), DatePattern.NORM_DATE_FORMAT), DateUtil.format(orderPay.getExpiredTime(), DatePattern.NORM_TIME_FORMAT)));
|
|
reqJSON.put("notify_url", "https://www.baidu.com");
|
JSONObject amount = new JSONObject();
|
amount.put("total", 888888);
|
amount.put("currency", "CNY");
|
reqJSON.put("amount", amount);
|
|
JSONObject sceneInfo = new JSONObject();
|
sceneInfo.put("payer_client_ip", "172.130.100.39");
|
reqJSON.put("scene_info", sceneInfo);
|
|
reqJSON.put("appid", "wx40ebd17aea073b38");
|
reqJSON.put("mchid", "1645270007");
|
|
JSONObject payer = new JSONObject();
|
payer.put("openid", "oL8WF5M_X5tfkP5iD13TWsl3pCGo");
|
reqJSON.put("payer", payer);
|
|
return reqJSON;
|
}
|
|
}
|