支付中簽約api
1. 應(yīng)用場景
支付的同時(shí)完成代扣協(xié)議的簽約。
2. 開發(fā)流程介紹
第一步 : 請(qǐng)求支付中簽約接口(接口請(qǐng)求參數(shù)見下文),獲取預(yù)支付id (對(duì)應(yīng)參數(shù):prepay_id). 此步驟需要根據(jù)不同支付方式選擇不同的trade_type(trade_type詳細(xì)介紹請(qǐng)參見交易類型規(guī)則).
第二步 : 按照不同支付方式的不同規(guī)則,按要求喚起微信支付收銀臺(tái).不同的支付方式,對(duì)于喚起微信支付收銀臺(tái)的方法要求不同,具體可以參見以下表格:
掃碼支付(NATIVE)詳見: | 掃碼支付(NATIVE)在線文檔 |
---|---|
公眾號(hào)支付(JSAPI)詳見: | 公眾號(hào)支付(JSAPI)在線文檔 |
App支付(APP)詳見: | App支付(APP)在線文檔 |
H5(MWEB)支付詳見: | H5(MWEB)在線文檔 |
小程序(JSAPI)支付詳見: | 小程序支付在線文檔 |
第三步 : 用戶完成支付,微信通過支付中簽約接口中商戶上傳的通知回調(diào)地址(對(duì)應(yīng)參數(shù):notify_url),將支付結(jié)果返回給商戶,同時(shí)將簽約結(jié)果通過contract_notify_url通知給商戶,兩次通知皆為異步通知.
3. 支付中簽約接口
請(qǐng)求Url | https://api.mch.weixin.qq.com/pay/contractorder |
---|---|
是否需要證書 | 否 |
請(qǐng)求方式 | POST |
請(qǐng)求參數(shù)
字段名 | 字段 | 必填 | 類型 | 示例值 | 說明 |
---|---|---|---|---|---|
請(qǐng)求appid | appid | 是 | String(32) | wxcbda96de0b165486 | appid是商戶在微信申請(qǐng)公眾號(hào)或移動(dòng)應(yīng)用成功后分配的賬號(hào)ID,登錄平臺(tái)為mp.weixin.qq.com或open.weixin.qq.com |
商戶號(hào) | mch_id | 是 | String(32) | 1200009811 | 商戶號(hào)是商戶在微信申請(qǐng)微信支付成功后分配的賬號(hào)ID,登錄平臺(tái)為www.tg885.com |
簽約商戶號(hào) | contract_mchid | 是 | String(32) | 1200009811 | 簽約商戶號(hào),必須與mch_id一致 |
簽約appid | contract_appid | 是 | String(32) | wxcbda96de0b165486 | 簽約公眾號(hào),必須與appid一致 |
商戶訂單號(hào) | out_trade_no | 是 | String(32) | 123456 | 商戶系統(tǒng)內(nèi)部的訂單號(hào),32個(gè)字符內(nèi)、可包含字母,?其他說明見商戶訂單號(hào) |
設(shè)備號(hào) | device_info | 否 | String(32) | 013467007045764 | 終端設(shè)備號(hào)(門店號(hào)或收銀設(shè)備ID),注意:PC網(wǎng)頁或公眾號(hào)內(nèi)支付請(qǐng)傳"WEB" |
隨機(jī)字符串 | nonce_str | 是 | string(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 隨機(jī)字符串,不長于32位. |
商品描述 | body | 是 | String(128) | Ipad mini 16G 白色 | 商品或支付單簡要描述 |
商品詳情 | detail | 否 | String(8192) | Ipad mini 16G 白色 | 商品名稱明細(xì)列表 |
附加數(shù)據(jù) | attach | 否 | String(127) | 深圳分店 | 附加數(shù)據(jù),在查詢API和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數(shù)據(jù) |
回調(diào)通知ur | notify_url | 是 | String(32) | http://yoursite.com | 回調(diào)通知的url |
總金額 | total_fee | 是 | int | 888 | 訂單總金額,單位為分 |
終端IP | spbill_create_ip | 是 | String(16) | 123.12.12.123 | APP和網(wǎng)頁支付提交用戶端ip,Native支付填調(diào)用微信支付API的機(jī)器IP. |
交易起始時(shí)間 | time_start | 否 | String(14) | 20091225091010 | 訂單生成時(shí)間,格式為yyyyMMddHHmmss,如2009年12月25日9點(diǎn)10分10秒表示為20091225091010. 其他詳見時(shí)間規(guī)則 |
交易結(jié)束時(shí)間 | time_expire | 否 | String(14) | 20091227091010 | 訂單失效時(shí)間,格式為yyyyMMddHHmmss,如2009年12月27日9點(diǎn)10分10秒表示為20091227091010. 其他詳見時(shí)間規(guī)則 |
商品標(biāo)記 | goods_tag | 否 | String(32) | WXG | 商品標(biāo)記,代金券或立減優(yōu)惠功能的參數(shù) |
交易類型 | trade_type | 是 | String(16) | JSAPI | 取值如下:JSAPI,NATIVE,APP,MWEB |
商品ID | product_id | 否 | String(32) | 12235413214070356458058 | trade_type=NATIVE,此參數(shù)必傳. 此id為二維碼中包含的商品ID,商戶自行定義. |
指定支付方式 | limit_pay | 否 | String(32) | no_credit | no_credit--指定不能使用信用卡支付 |
用戶標(biāo)識(shí) | openid | 否 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | trade_type=JSAPI,此參數(shù)必傳,用戶在商戶appid下的唯一標(biāo)識(shí). |
模板id | plan_id | 是 | int | 123 | 協(xié)議模板id |
簽約協(xié)議號(hào) | contract_code | 是 | String(32) | 100001256 | 簽約協(xié)議號(hào) |
請(qǐng)求序列號(hào) | request_serial | 是 | int64 | 1695 | 商戶請(qǐng)求簽約時(shí)的序列號(hào),要求唯一性。序列號(hào)主要用于排序,不作為查詢條件,純數(shù)字,范圍不能超過int64的范圍(9223372036854775807)。 |
用戶賬戶展示名稱 | contract_display_account | 是 | String | 123 | 簽約用戶的名稱,用于頁面展示,參數(shù)值不支持UTF8非3字節(jié)編碼的字符,例如表情符號(hào),所以請(qǐng)勿傳微信昵稱到該字段 |
簽約信息通知url | contract_notify_url | 是 | String | http://yoursite.com | 簽約信息回調(diào)通知的url |
簽名 | sign | 是 | String(32) | E1EE61A91C8E90F299DE6AE075D60A2D | 簽名規(guī)則詳見簽名生成算法 注:所有參數(shù)都是encode前做簽名 |
5. 返回參數(shù)
字段名 | 變量名 | 必填 | 類型 | 示例值 | 說明 |
---|---|---|---|---|---|
返回狀態(tài)碼 |
return_code |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL |
返回信息 |
return_msg |
否 |
String(128) |
簽名失敗 |
返回信息,如非空,為錯(cuò)誤原因 |
以下字段在return_code為SUCCESS的時(shí)候返回 | |||||
業(yè)務(wù)結(jié)果 |
result_code |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL |
請(qǐng)求appid | appid | 是 | String(32) | wxcbda96de0b165486 | appid是商戶在微信申請(qǐng)公眾號(hào)或移動(dòng)應(yīng)用成功后分配的賬號(hào)ID,登錄平臺(tái)為mp.weixin.qq.com或open.weixin.qq.com |
商戶號(hào) | mch_id | 是 | String(32) | 1200009811 | 商戶號(hào)是商戶在微信申請(qǐng)微信支付成功后分配的賬號(hào)ID,登錄平臺(tái)為www.tg885.com |
隨機(jī)字符串 |
nonce_str |
是 |
String(32) |
5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
隨機(jī)字符串,不長于32位. |
簽名 |
sign |
是 |
String(32) |
E1EE61A91C8E90F299DE6AE075D60A2D |
簽名規(guī)則詳見簽名生成算法 注:所有參數(shù)都是encode前做簽名. |
錯(cuò)誤代碼 |
err_code |
否 |
String(32) |
SYSTEMERROR |
錯(cuò)誤返回的錯(cuò)誤代碼 |
錯(cuò)誤代碼描述 |
err_code_des |
否 |
String(128) |
系統(tǒng)錯(cuò)誤 |
錯(cuò)誤返回的信息描述 |
預(yù)簽約結(jié)果 |
contract_result_code |
是 |
String |
SUCCESS |
預(yù)簽約結(jié)果 |
預(yù)簽約錯(cuò)誤代碼 |
contract_err_code |
否 |
String |
Fail |
預(yù)簽約錯(cuò)誤代碼 |
預(yù)簽約錯(cuò)誤描述 |
contract_err_code_des |
否 |
String |
已簽約 |
預(yù)簽約錯(cuò)誤描述 |
以下字段在return_code 和result_code都為SUCCESS的時(shí)候有返回 | |||||
簽名 |
sign |
是 |
String(32) |
C380BEC2BFD727A4B6845133519F3AD6 |
|
公眾賬號(hào)id |
appid |
是 |
String(32) |
wxcbda96de0b165486 |
微信支付分配的公眾賬號(hào)id |
商戶號(hào) |
mch_id |
是 |
String(32) |
10000098 |
微信支付分配的商戶號(hào) |
預(yù)支付交易會(huì)話標(biāo)識(shí) |
prepay_id |
是 |
String(64) |
wx201410272009395522657a690389285100 |
微信生成的預(yù)支付回話標(biāo)識(shí),用于后續(xù)接口調(diào)用中使用,該值有效期為2小時(shí). |
交易類型 |
trade_type |
是 |
String(16) |
JSAPI |
調(diào)用接口提交的交易類型,取值如下:JSAPI,NATIVE,APP |
二維碼鏈接 |
code_url |
否 |
String(64) |
weixin://wxpay/s/An4baqw |
trade_type為NATIVE是有返回,可將該參數(shù)值生成二維碼展示出來進(jìn)行掃碼支付 |
模板id |
plan_id |
否 |
int |
123 |
商戶在微信商戶平臺(tái)設(shè)置的代扣協(xié)議模板id |
請(qǐng)求序列號(hào) |
request_serial |
否 |
Uint64 |
1695 |
商戶請(qǐng)求簽約時(shí)的序列號(hào),商戶側(cè)須唯一 |
簽約協(xié)議號(hào) |
contract_code |
否 |
String |
1023658866 |
商戶請(qǐng)求簽約時(shí)傳入的簽約協(xié)議號(hào),商戶側(cè)須唯一 |
用戶賬戶展示名稱 |
contract_display_account |
否 |
String |
張三 |
簽約用戶的名稱,用于頁面展示 |
支付跳轉(zhuǎn)鏈接 | mweb_url | 否 | String(64) | https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241 | mweb_url為拉起微信支付收銀臺(tái)的中間頁面,可通過訪問該url來拉起微信客戶端,完成支付,mweb_url的有效期為5分鐘。 |
商戶訂單號(hào) |
out_trade_no |
是 |
String(32) |
123456 |
商戶訂單號(hào) |
6. 錯(cuò)誤碼
錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|
SIGN_ERROR |
簽名錯(cuò)誤 |
驗(yàn)證簽名算法 |
PARAMETER FAIL |
參數(shù)錯(cuò)誤 |
驗(yàn)證參數(shù) |
XML FAIL |
XML格式錯(cuò)誤 |
檢查XML格式 |
RESULT NULL |
查詢?yōu)榭?/p> |
傳入正確查詢參數(shù) |
MERCHANT PERMISSION ERROR |
受理商戶沒有權(quán)限 |
確認(rèn)商戶權(quán)限 |
INVALID PLAN_ID |
簽約模板無效 |
檢查正確模板id |
CONTRACT_CODE DUPLICATION |
該簽約號(hào)已存在 |
contract_code已經(jīng)被簽約,請(qǐng)傳入不重復(fù)的簽約號(hào) |
MERCHANT AUTHORITY ERROR |
商戶權(quán)限校驗(yàn)失敗 |
聯(lián)系相關(guān)接口人確認(rèn)委托代扣權(quán)限 |