為了Java微信支付V3開發包,我找出了微信支付文檔至少六個錯誤


1. 前言

最近忙的一批,難得今天有喘氣的機會就趕緊把最近在開發中的一些成果分享出來。前幾日分享了自己寫的一個微信支付V3的開發包payment-spring-boot-starter,就忙里偷閑完善了一波。

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

別忘記給個Star啊,有問題提ISSUE。

那么都完善了哪些內容呢?我來一一介紹。

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。

今天的分享就到這里,如果你在微信支付中遇到了什么問題可以留言提問,我願意提供力所能及的幫助,分享使我快樂。

關注公眾號:Felordcn 獲取更多資訊

個人博客:https://felord.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM