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; } }