使用微信支付的v3 API進(jìn)行支付的相關(guān)功能的開(kāi)發(fā)
以前都是自己手搓api的, 現(xiàn)在有輪子了, 嘗試記錄一下如何使用
我的做法是首先打開(kāi)v3的代碼倉(cāng)庫(kù), 直接進(jìn)去看看他們的文檔, 可以看到這么一坨東西文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-524800.html
前置條件
- 開(kāi)發(fā)前準(zhǔn)備
2. 先引入maven
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.6</version>
</dependency>
- 初始化商戶配置
Config config = new RSAAutoCertificateConfig.Builder()
.merchantId(wechatConstant.spMchId)
.privateKeyFromPath(wechatConstant.privateKeyPath)
.merchantSerialNumber(wechatConstant.merchantSerialNumber)
.apiV3Key(wechatConstant.apiV3key)
.build();
實(shí)現(xiàn)代碼
- 先從請(qǐng)求頭中獲取構(gòu)建RequestParam需要的參數(shù)
// 從請(qǐng)求頭中獲取信息
String timestamp = request.getHeader("Wechatpay-Timestamp");
String nonce = request.getHeader("Wechatpay-Nonce");
String signature = request.getHeader("Wechatpay-Signature");
String singType = request.getHeader("Wechatpay-Signature-Type");
String wechatPayCertificateSerialNumber = request.getHeader("Wechatpay-Serial");
- 初始化解析器
// 初始化解析器 NotificationParser
NotificationParser parser = new NotificationParser((NotificationConfig) config);
- 進(jìn)行驗(yàn)簽, 解密并轉(zhuǎn)換成Transaction, 驗(yàn)簽解密都是用API干了, 不用自己手動(dòng)整了
import com.wechat.pay.java.service.partnerpayments.jsapi.model
// 這個(gè)Transaction是微信包里面的
Transaction decryptObject = parser.parse(requestParam, Transaction.class);
- 成功后需要對(duì)微信進(jìn)行應(yīng)答
接收成功:HTTP應(yīng)答狀態(tài)碼需返回200或204,無(wú)需返回應(yīng)答報(bào)文。
接收失?。篐TTP應(yīng)答狀態(tài)碼需返回5XX或4XX,同時(shí)需返回應(yīng)答報(bào)文
{
"code": "FAIL",
"message": "失敗"
}
完成文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-524800.html
到了這里,關(guān)于Java實(shí)現(xiàn)微信支付v3的支付回調(diào)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!