一、模擬測試系統
為降低商家測試門檻,微信支付團隊開發了一套獨立的模擬測試系統。該系統根據驗收用例金額的不同返回不同的回應報文,以滿足商家正常功能測試、安全/異常測試及效能測試的需求。
圖1 微信支付模擬測試系統
圖1為微信支付模擬測試系統(後簡稱模擬系統)的簡化原理圖。仿真係統的API協定與正式API完全相同。商家開發者只要將正式API的呼叫URL增加一層sandboxnew路徑,即可對接到模擬系統。
例如,刷卡付款URL:api.mch.weixin.qq.com/pay/micropay
變更為:api.mch.weixin.qq.com/sandboxnew/pay/micropay。
模擬系統與生產環境完全獨立,包括儲存層。商家在模擬系統所做的所有交易(如下單、支付、查詢)均為無資金流的假數據,即:用戶無須真實扣款,商家也不會有資金入帳。代金券同理,沙箱環境中無需商家真實製券與發券,亦不會出現真實扣券狀況。驗收模擬測試系統的API驗簽金鑰需從API取得:
取得驗簽秘鑰API:
請求Url | api.mch.weixin.qq.com/sandboxnew/pay/getsignkey |
---|---|
是否需要憑證 | 否 |
#請求方式 | POST |
請求參數:
#欄位名稱 | 欄位 | #必填 | 範例值 | 類型 | 說明 |
---|---|---|---|---|---|
#商家號碼 | mch_id | 是 | 1305638280 | String(32) | 微信支付分配的微信商家號碼 |
#隨機字符字串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | #String(32) | 隨機字串,不長於32位元 |
隨機字串,不長於32位元 | 簽名 | sign | 是 | #5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
傳回參數:
欄位名稱 | 欄位 | ##必填#範例值 | 類型 | 說明 | |
---|---|---|---|---|---|
狀態碼##return_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL 此欄位是通訊標識,非交易標識 | |
return_msg | 否 | 簽名失敗 | String(128) | 傳回訊息,如非空,為錯誤原因 ,簽章失敗 ,參數格式校驗錯誤 |
欄位名稱 | 欄位 | 必填 | 範例值 | 類型 | 說明 |
---|---|---|---|---|---|
商家號碼 | mch_id | 是 | 1305638280 | #String(32) | 微信支付分配的微信商家號碼 |
沙箱金鑰 | sandbox_signkey | 否 | 013467007045764 | String(32) | 傳回的沙箱金鑰 |
商家存取模擬系統的互動流程範例:
1. 商家發起刷卡支付請求,使用POST方式呼叫api.mch.weixin.qq.com/sandboxnew#/pay/micropay
2. 帶有sandboxnew 的https請求會被nginx路由到模擬系統。模擬系統根據支付金額(total_fee欄位)返回預期封包給商家。同時,落地該筆請求資料;
3. 商家發起查單,呼叫api.mch.weixin.qq.com/sandboxnew/pay/orderquery,帶上微信訂單號碼(transaction_id)或商家內部單號(out_trade_no);
4. 模擬系統收到查單請求後,根據單號及金額回傳預期的查單結果給商家;
5. 商家下載對帳單,呼叫api.mch .weixin.qq.com/sandboxnew/pay/downloadbill,模擬系統傳回固定的帳單格式給商家。註:帳單內容不一定與商家在模擬系統產生的交易完全相同。
使用方倍工作室微信支付全能介面類,幾行程式碼即可實現
//1.5 沙箱密钥$obj = array();$obj['mch_id'] = MCHID;$url = 'https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey';$wxHongBaoHelper = new WxPay();$data = $wxHongBaoHelper->wxpay($url, $obj, false);$res = $wxHongBaoHelper->xmlToArray($data);
回傳結果如下
array(3) { ["return_code"]=> string(7) "SUCCESS" ["return_msg"]=> string(2) "ok" ["sandbox_signkey"]=> string(32) "4d827419cb511d8f6ccc35d574ff1f7b"}
為降低商家測試門檻,微信支付團隊開發了一套獨立的模擬測試系統。該系統根據驗收用例金額的不同返回不同的回應報文,以滿足商家正常功能測試、安全/異常測試及效能測試的需求。
【相關推薦】
2.微信投票原始碼
以上是微信支付開發之沙箱密鑰步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!