https://github.com/binarywang/weixin-java-pay-demo
這個(gè)demo里, 沒(méi)有v3版本的配置, 這里記錄一下
v3支付, 相對(duì)之前的版本來(lái)說(shuō), 更為安全, 也相對(duì)繁瑣一些, 而且請(qǐng)求和響應(yīng)都使用了json格式的數(shù)據(jù)
1. 配置
發(fā)起支付所需的配置有三個(gè)證書(shū)文件, 在商戶后臺(tái)申請(qǐng)
apiclient_cert.p12
apiclient_key.pem
apiclient_cert.pem
完整配置
@Bean
@ConditionalOnMissingBean
public WxPayService wxService() {
WxPayConfig payConfig = new WxPayConfig();
payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId()));
payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId()));
payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath()));
payConfig.setPrivateKeyPath(StringUtils.trimToNull(this.properties.getPrivateKeyPath()));
payConfig.setPrivateCertPath(StringUtils.trimToNull(this.properties.getPrivateCertPath()));
payConfig.setApiV3Key(StringUtils.trimToNull(this.properties.getApiV3Key()));
WxPayService wxPayService = new WxPayServiceImpl();
wxPayService.setConfig(payConfig);
return wxPayService;
}
2. 發(fā)起支付
小程序端 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml
WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
WxPayUnifiedOrderV3Result.JsapiResult result = wxService.createOrderV3(TradeTypeEnum.JSAPI, request);
System.out.println(result);
3. 回調(diào)處理
文檔 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_5.shtml
WxPayOrderNotifyV3Result result = wxService.parseOrderNotifyV3Result("notifyData", new SignatureHeader());
WxPayOrderNotifyV3Result.DecryptNotifyResult notifyResult = result.getResult();
WxPayNotifyResponse.success("成功");
SignatureHeader內(nèi)的屬性都可以在文檔內(nèi)找到獲取方法
注意
支付通知http應(yīng)答碼為200或204才會(huì)當(dāng)作正常接收,當(dāng)回調(diào)處理異常時(shí),應(yīng)答的HTTP狀態(tài)碼應(yīng)為500,或者4xx。
這個(gè)是官方文檔原文, 如果應(yīng)答報(bào)文code
為fail
, 但http狀態(tài)碼為200
, 微信也認(rèn)為你是正常處理, 不會(huì)重試回調(diào)
沒(méi)什么好說(shuō)的, v3支付使用json進(jìn)行數(shù)據(jù)交互, 但weixin-java-pay提供的應(yīng)答方法是以xml格式返回的, 可以自定義對(duì)象返回json文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-500188.html
注意微信回調(diào)并非100%可靠, 需要補(bǔ)償機(jī)制文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-500188.html
到了這里,關(guān)于weixin-java-pay對(duì)接微信V3支付記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!