Java開源:wepay-輕量的 Java 微信支付組件

4359hijx 7年前發布 | 16K 次閱讀 Java Java開發

Wepay

輕量的微信支付組件(A Lightweight Wechat Pay Component)

  • 包引入:

    <dependency>
        <groupId>me.hao0</groupId>
        <artifactId>wepay-core</artifactId>
        <version>1.2.4</version>
    </dependency>
  • 依賴包,注意引入項目時是否需要 exclude :

    <dependency>
        <groupId>me.hao0</groupId>
        <artifactId>common</artifactId>
        <version>1.1.2</version>
    </dependency>
  • 基本用法:

    Wepay wepay = WepayBuilder
                    .newBuilder(appId, appKey, mchId)
                    .config1(...)   // 其他可選配置
                    ...
                    .build();

    wepay.module().api();</code></pre> </li>

  • 已實現的組件:

    • 支付 pay() ;
    • 退款 refund() ;
    • 訂單 order() ;
    • 通知 notify() ;
    • 賬單 bill() 。
    • </ul> </li>
    • 關于測試:

      • 測試用例中 是一些基本測試,需作一些配置:

        // 在test/reources目錄中配置dev.properties
        // 包括appId(APP ID), appKey(支付密鑰), mchId(商戶號)
        Properties props = new Properties();
        InputStream in = Object.class.getResourceAsStream("/dev.properties");
        props.load(in);
        in.close();

        // 配置證書,退款需要證書,不配置可測試除退款的接口 Path path = Paths.get("/path/to/your_cert.p12"); byte[] data = Files.readAllBytes(path);

        wepay = WepayBuilder.newBuilder( props.getProperty("appId"), props.getProperty("appKey"), props.getProperty("mchId")) .certPasswd(props.getProperty("mchId")) .certs(data) .build();</code></pre> </li>

      • wepay-demo 項目是一個可運行web項目,方便測試,可按如下步驟進行測試,復制 wepay-demo 中的 app-example.properties 為 app.properties ,并作相應配置:

        # 微信app id
        appId=

        微信支付key

        appKey=

        商戶號

        mchId=

        支付通知url

        payNotifyUrl=${your_domain}/notifies/paid</code></pre> </li>

      • 注意: payNotifyUrl 應該配置為微信服務器可以外網調用的地址,本地測試建議使用 ngrok 工具來作本地外網映射。

      • 到 wepay-demo 根目錄運行以下命令即可:

        mvn clean jetty:run -Dmaven.test.skip -Djetty.port={自定義端口號}
      • 動態二維碼支付可訪問( 請求正常后,會出現由聯圖生成的二維碼圖片,用微信掃描支付成功后,后臺會得到對應通知 Notifies ):

        http://localhost:{port}/pays/qrpay?orderNumber={自定義訂單號}
      • 退款可訪問( 提交成功后,微信會有消息通知 ):

        http://localhost:{port}/refunds/apply?orderNumber={商戶訂單號}     ```
      • </ul> </li>
      • 相關文檔:

        • 微信支付文檔 。
        • </ul> </li>
        • 歷史版本:

          • 1.0.0:

            • 基本功能實現。
            • </ul> </li>
            • 1.1.0:

              • 增加賬單查詢。
              • </ul> </li>
              • 1.1.1:

                • 修復prepayId。
                • </ul> </li>
                • 1.1.2:

                  • 修復JS/APP支付簽名問題。
                  • </ul> </li>
                  • 1.2.2:

                    • 增加退款查詢字段: 退款狀態, 退款金額, 退款入賬方。
                    • </ul> </li>
                    • 1.2.3:

                      • fix isNullOrEmpty。
                      • </ul> </li>
                      • 1.2.4:

                        • 升級common至1.1.2, 可配置解析微信XML的編碼類型, 默認為UTF-8, 防止與本地默認編碼不一致。
                        • </ul> </li> </ul> </li>
                        • 相關組件:

 本文由用戶 4359hijx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!