Spring Boot項目中集成微信支付v3

1. 前言

最近忙的一批,難得今天有喘氣的機會就趕緊把最近在開發中的一些成果分享出來。前幾日分享瞭自己寫的一個微信支付V3的開發包payment-spring-boot-starter,就忙裡偷閑完善瞭一波。期間給微信支付提交瞭6個BUG,跟微信支付的產品溝通瞭好幾天。

項目地址: https://github.com/NotFound403/payment-spring-boot

別忘記給個Star啊。

那麼都完善瞭哪些內容呢?胖哥來一一介紹。

2. Maven 中央倉庫

是的,不用再自行編譯打包部署瞭,我已經提交到Maven中央倉庫瞭。最新的坐標是:

<dependency>
  <groupId>cn.felord</groupId>
  <artifactId>payment-spring-boot-starter</artifactId>
  <version>1.0.1.RELEASE</version>
</dependency>

這才算有瞭點正經開源項目的樣子。

3. 功能更加完善

在上次分享中僅僅實現瞭微信支付的代金券能力,這次加入瞭更多的微信支付能力:

微信支付V3的基礎支付-直連模式優化。
實現微信支付V3的合單支付。
同時自行實現瞭多商戶、多APPID的多租戶模式。後續微信支付分等功能也將接入進來。

4. 完善樣例

大部分還是喜歡拿來就用,那麼我編寫瞭一個DEMO項目,比如微信支付回調的控制器代碼:

/**
 * 微信支付成功回調.
 * <p>
 * 無需開發者判斷,隻有扣款成功微信才會回調此接口
 *
 * @param wechatpaySerial  the wechatpay serial
 * @param wechatpaySignature the wechatpay signature
 * @param wechatpayTimestamp the wechatpay timestamp
 * @param wechatpayNonce   the wechatpay nonce
 * @param request      the request
 * @return the map
 */
@SneakyThrows
@PostMapping("/transaction")
public Map<String, ?> transactionCallback(
    @RequestHeader("Wechatpay-Serial") String wechatpaySerial,
    @RequestHeader("Wechatpay-Signature") String wechatpaySignature,
    @RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp,
    @RequestHeader("Wechatpay-Nonce") String wechatpayNonce,
    HttpServletRequest request) {
  String body = request.getReader().lines().collect(Collectors.joining());
  // 對請求頭進行驗簽 以確保是微信服務器的調用
  ResponseSignVerifyParams params = new ResponseSignVerifyParams();
  params.setWechatpaySerial(wechatpaySerial);
  params.setWechatpaySignature(wechatpaySignature);
  params.setWechatpayTimestamp(wechatpayTimestamp);
  params.setWechatpayNonce(wechatpayNonce);
  params.setBody(body);
  return wechatApiProvider.callback(TENANT_ID).transactionCallback(params, data -> {
    //TODO 對回調解析的結果進行消費
  });
}

基本就是抄來就能用的。還有更多請參閱 payment-spring-boot-samples項目:

地址:https://github.com/NotFound403/payment-spring-boot-samples

5. 文檔

寫文檔確實是一個枯燥的事情,參考瞭其它一些開源項目的樣子弄瞭個像模像樣的文檔:

地址是:https://notfound403.github.io/payment-spring-boot

快速接入指南、JavaDoc、踩坑分享都在文檔裡面瞭。如果有什麼需要完善的地方可以提交ISSUE。

今天的分享就到這裡,如果你在微信支付中遇到瞭什麼問題可以留言提問,分享使我快樂。

以上就是Spring Boot項目中集成微信支付v3的詳細內容,更多關於Spring Boot項目微信支付的資料請關註WalkonNet其它相關文章!

推薦閱讀: