淺析微信支付:支付驗收示例和驗收指引

本文是【淺析微信支付】系列文章的第十一篇,主要講解支付驗收示例和驗收指引。

淺析微信支付系列已經更新十一篇了喲~,沒有看過的朋友們能夠看一下。php

淺析微信支付:如何使用沙箱環境測試git

淺析微信支付:下載對帳單和資金帳單github

淺析微信支付:申請退款、退款回調接口、查詢退款api

淺析微信支付:查詢訂單和關閉訂單安全

上一篇文章咱們講了 如何使用沙箱環境測試,文中有講到沙箱環境不只能夠用來當開發環境使用,及時返回接口數據,還能看成微信支付的 驗收示例,官方指出,爲了安全考慮但願全部商戶都接入驗收,如下咱們會結合官方文檔爲你們講解如何接入及相關的驗收用例。微信

驗收指引

官方文檔地址:測試

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_1

本文閱讀對象爲:商戶自有系統(包括但不限於:在線購物平臺、人工收銀系統、自動化智能收銀系統、APP應用等)負責微信支付功能驗收的測試及開發人員。微信支付

爲保證商戶接入質量,提高交易安全及用戶體驗,微信支付的合做服務商在正式上線交易前,必須先根據本文指引完成驗收。驗收完成後,服務商在驗收公衆平臺(微信號:WXPayAssist)提交驗收經過申請,審覈經過後,才能開通相應的支付權限(如:刷卡支付)。不然,請根據審覈駁回提示,從新完成驗收。url

注:仿真測試環境中的商戶號(父子商戶號)需使用真實商戶號。spa

驗收流程

圖2 商戶接入驗收流程

如圖2,商戶在收到微信支付審覈經過的郵件後,便可用郵件中提供的開發者信息,啓動測試驗收工做。驗收開始後,驗收負責人可按照下表步驟操做:

驗收步驟

以上爲驗收的基本步驟,首先,咱們須要接入 沙箱環境,不知道的小夥伴能夠查看個人上一篇文章,有詳細描述,這裏就不細說了。

驗收測試用例

若是已經接入沙箱環境,咱們就能夠開始選擇微信官方對應的驗收用例進行測試了,官方提供了四種驗收用例,以下:

請根據您須要開通的功能來選擇相應的驗收用例進行測試:

刷卡支付驗收用例
掃碼支付驗收用例
公衆號支付驗收用例
免充值券驗收用例

這裏咱們以 公衆號支付驗收用例 來作例子,下面爲官方的驗收流程:
公衆號支付驗收用例

流程咱們已經知道了,重點來了,咱們須要下載驗收用例,下面是地址:

https://pay.weixin.qq.com/wiki/doc/api/download/jsapi_yanshou.zip

首先,請關注上面圖片中的二維碼,若是遇到問題,能夠查看官方的異常解答;下載驗收用例後,咱們會獲得 4 個用例文檔,須要根據文檔中的描述來進行驗收,支付成功支付失敗接口是必須驗收的。

如何驗收?

簡單講,驗收分爲如下幾個步驟:

  1. 獲取sandbox_signkey
  2. 修改正常接口地址爲沙箱環境地址,增長 sandboxnew 路徑
  3. 根據用例集標題中的金額傳入參數,調用相應的接口
  4. 查看返回值與用例集中是否一致,若是一致則成功,不然失敗

須要注意的是,必定要根據用例集中的標題傳入金額,好比支付成功用例集須要傳入金額1.01元,那咱們就必須傳入這個金額,傳入其餘金額會致使失敗。

如下爲示例代碼:

public static void main(String[] args) throws Exception {
    System.out.println("--------------->");

    // 沙箱環境測試
    WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance(), true, true);

    Map<String, String> resultMap = wxPay.unifiedOrder(notify_url, openid, body, out_trade_no, 
    "1.01", spbill_create_ip, goods_tag, detail,
            timeStart, timeExpire);


    System.out.println(resultMap);

    /*Map<String, String> resultMap = wxPay.refund(null, "10000", "10001", "1.01", "0.01", "測試微信退款");
    System.out.println(WXPayUtil.isSignatureValid(resultMap, WXPayConstants.API_KEY));*/


    System.out.println("<---------------");
}

上面代碼中是做者封裝好的sdk方法,開啓沙箱環境只須要實例化對象時傳入參數便可:

// 沙箱環境測試
WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance(), true, true);

// 正式環境
WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance());

具體源碼見下面文末github地址。

結語

給小夥伴們分享點驗收的經驗,首先,必定要先看一遍官方文檔,而後跟着官方文檔一步步的操做,對於官方所講的關鍵信息,必須仔細檢查,好比上面所說的金額,還有官方標紅的一些註釋,本文主要目的是給你們一個分享和參考,比較方便的是做者已經封裝好的sdk中有相關的 沙箱環境 切換示例,不須要你們再分析具體實現,關注如何應用便可。

若是小夥伴有遇到解決不了的問題,能夠關注做者微信公衆號,加入討論羣中發出疑問,和小夥伴們一塊兒解決哦~

預告:下一篇文章 (餘額提現)企業付款到微信用戶零錢帳戶,敬請期待!!!

​若是想要提早一覽源碼的小夥伴,能夠先看看個人 github,地址以下:

`
https://github.com/YClimb/wxp...
`

關注做者微信公衆號,點擊下方討論羣,掃碼便可加入微信支付討論羣與小夥伴一塊兒探討哦~

到此本文就結束了,關注公衆號查看更多推送!!!


關注個人公衆號

相關文章
相關標籤/搜索