最新更新時間:2020.5.08 版本說明
除付款碼支付場景以外,商戶系統(tǒng)先調(diào)用該接口在微信支付服務后臺生成預支付交易單,返回正確的預支付交易會話標識后再按Native、JSAPI、APP等不同場景生成交易串調(diào)起支付。
適用對象:直連模式機構(gòu)模式
請求URL:https://api.mch.weixin.qq.com/pay/unifiedorder
請求方式: POST
是否需要證書: 否
參數(shù)名 | 變量名 | 類型 | 必填 | 描述 |
---|---|---|---|---|
公眾賬號ID | appid | String(32) | 是 | 在微信公眾平臺或開放平臺生成的應用ID,全局唯一。請求統(tǒng)一下單接口時請注意APPID的應用屬性,例如公眾號場景下,需使用應用屬性為公眾號的APPID。 示例值:wx8888888888888888 |
商戶號 | mch_id | String(32) | 是 | 微信支付分配的商戶號(商戶號申請指引) 示例值:1230000109 |
子商戶公眾賬號ID | sub_appid | String(32) | 否 | 微信分配的子商戶公眾賬號ID,如需在支付完成后獲取sub_openid則此參數(shù)必傳。 注意:僅適用于機構(gòu)模式 示例值:wx8888888888888888 |
子商戶號 | sub_mch_id | String(32) | 是 | 微信支付分配的子商戶號 注意:僅適用于機構(gòu)模式 示例值:1900000109 |
設(shè)備號 | device_info | String(32) | 否 | 終端設(shè)備號(門店號或收銀設(shè)備ID),注意:PC網(wǎng)頁或公眾號內(nèi)支付請傳"WEB" 示例值:013467007045764 |
隨機字符串 | nonce_str | String(32) | 是 | 隨機字符串,不長于32位。推薦隨機數(shù)生成算法 示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
簽名 | sign | String(64) | 是 | 簽名,詳見簽名生成算法 示例值:C380BEC2BFD727A4B6845133519F3AD6 |
簽名類型 | sign_type | String(32) | 否 | 簽名類型,目前支持HMAC-SHA256和MD5,默認為MD5 示例值:HMAC-SHA256 |
商品描述 | body | String(127) | 是 | 商品或支付單簡要描述 示例值:Ipad mini 16G 白色 |
版本 ID | version | String(32) | 是 | 固定值: 1.0 示例:1.0 |
商品詳情 | detail | String(6000) | 否 | 商品詳細列表,使用Json格式,傳輸簽名前請務必使用CDATA標簽將JSON文本串保護起來。 goods_detail └ goods_name String 必填 256 商品名稱 └ quantity int 必填 4 商品數(shù)量 示例值:{"goods_detail":[{"goods_name":"iPhone6s 16G","quantity":1,},{"goods_name":"iPhone6s 32G","quantity":1,}]} |
附加數(shù)據(jù) | attach | String(127) | 否 |
附加數(shù)據(jù),在查詢API和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數(shù)據(jù) 示例值:說明 |
商戶訂單號 | out_trade_no | String(32) | 是 |
商戶系統(tǒng)內(nèi)部訂單號,要求32個字符內(nèi),只能是數(shù)字、大小寫字母_-|*且在同一個商戶號下唯一。 其他說明見商戶訂單號 示例值:1217752501201407033233368018 |
標價幣種 | fee_type | String(16) | 是 |
符合ISO 4217標準的三位字母代碼,列表詳見貨幣類型 示例值:USD |
標價金額 | total_fee | int | 是 |
訂單總金額,只能為整數(shù),詳見標價金額 示例值:888 |
終端IP | spbill_create_ip | String(64) | 是 |
支持IPV4和IPV6兩種格式的IP地址。調(diào)用微信支付API的機器IP 示例值:8.8.8.8 |
交易起始時間 | time_start | String(14) | 否 |
訂單生成時間,格式為yyyyMMddHHmmss,如2009年12月25日9點10分10秒表示為20091225091010。其他詳見時間規(guī)則 示例值:20091225091010 |
交易結(jié)束時間 | time_expire | String(14) | 否 |
訂單失效時間,格式為yyyyMMddHHmmss,如2009年12月27日9點10分10秒表示為20091227091010。 示例值:20091227091010 |
通知地址 | notify_url | String(256) | 是 |
接收微信支付異步通知回調(diào)地址 示例值:http://www.weixin.qq.com/ |
交易類型 | trade_type | String(16) | 是 |
取值如下:JSAPI,NATIVE,APP,詳細說明見參數(shù)規(guī)定 示例值:JSAPI |
商品ID | product_id | String(32) | 否 |
trade_type=NATIVE時,此參數(shù)必傳。此id為二維碼中包含的商品ID,商戶自行定義。 示例值:12235413214070356458058 |
用戶標識 | openid | String(128) | 否 |
trade_type=JSAPI,此參數(shù)必傳,用戶在主商戶appid下的唯一標識。openid和sub_openid可以選傳其中之一,如果選擇傳sub_openid,則必須傳sub_appid。openid如何獲取,可參考獲取openid 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
用戶子標識 | sub_openid | String(128) | 否 |
trade_type=JSAPI,此參數(shù)必傳,用戶在子商戶appid下的唯一標識。openid和sub_openid可以選傳其中之一,如果選擇傳sub_openid,則必須傳sub_appid。openid如何獲取,可參考獲取openid 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
開發(fā)票入口開放標識 | receipt | String(8) | 否 |
Y,傳入Y時,支付成功消息和支付詳情頁將出現(xiàn)開票入口。需要在微信支付商戶平臺或微信公眾平臺開通電子發(fā)票功能,傳此字段才可生效 示例值:Y |
場景信息 | scene_info | string(256) | 否 |
該字段用于統(tǒng)一下單時上報場景信息,目前支持上報實際門店信息。 { "store_id": "", //門店唯一標識,選填,string(32) "store_name":"”//門店名稱,選填,string(64) } 示例值:{ "store_id": "SZT10000", "store_name":"騰訊大廈騰大餐廳" } |
<xml>
<appid>wx2421b1c4370ec43b</appid>
<body>An apple</body>
<device_info>123001</device_info>
<fee_type>EUR</fee_type>
<mch_id>10000100</mch_id>
<nonce_str>f6868b9b16bf4893958afd4a46d73422</nonce_str>
<notify_url>https:/localhost/api/apm/notify/wechat</notify_url>
<out_trade_no>1678371718207330</out_trade_no>
<sign>9EFAE9F4023ECFA091E55B92BE59F9B6</sign>
<sub_mch_id>375907253</sub_mch_id>
<total_fee>1</total_fee>
<trade_type>APP</trade_type>
</xml>
注:參數(shù)值用XML轉(zhuǎn)義即可,CDATA標簽用于說明數(shù)據(jù)不被XML解析器解析。
字段名 | 變量名 | 類型 | 必填 | 描述 |
---|---|---|---|---|
返回狀態(tài)碼 | return_code | string(16) | 是 | SUCCESS/FAIL 此字段是通信標識,非交易標識,交易是否成功需要查看result_code來判斷 示例值:SUCCESS |
返回信息 | return_msg | String(128) | 否 | 返回信息,如非空,為錯誤原因 簽名失敗 參數(shù)格式校驗錯誤 示例值:簽名失敗 |
以下字段在return_code為SUCCESS的時候有返回
字段名 | 變量名 | 類型 | 必填 | 描述 |
---|---|---|---|---|
公眾賬號ID | appid | String(32) | 是 | 調(diào)用接口提交的公眾賬號ID 示例值:wx8888888888888888 |
商戶號 | mch_id | String(32) | 是 | 調(diào)用接口提交的商戶號 示例值:1900000109 |
子商戶公眾賬號ID | sub_appid | String(32) | 否 | 微信分配的子商戶公眾賬號ID 注意:僅適用于機構(gòu)模式 示例值:wx8888888888888888 |
子商戶號 | sub_mch_id | String(32) | 是 | 微信支付分配的子商戶號 注意:僅適用于機構(gòu)模式 示例值:1900000109 |
設(shè)備號 | device_info | String(32) | 否 | 調(diào)用接口提交的終端設(shè)備號。 示例值:013467007045764 |
隨機字符串 | nonce_str | String(32) | 是 | 微信返回的隨機字符串 示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
簽名 | sign | String(64) | 是 | 微信返回的簽名,詳見簽名算法 示例值:C380BEC2BFD727A4B6845133519F3AD6 |
業(yè)務結(jié)果 | result_code | String(16) | 是 | SUCCESS/FAIL 示例值:SUCCESS |
錯誤代碼 | err_code | String(32) | 否 | 詳細參見第6節(jié)錯誤列表 示例值:SYSTEMERROR |
錯誤代碼描述 | err_code_des | String(128) | 否 | 錯誤返回的信息描述 示例值:系統(tǒng)錯誤 |
以下字段在return_code 和result_code都為SUCCESS的時候有返回
字段名 | 變量名 | 類型 | 必填 | 描述 |
---|---|---|---|---|
交易類型 | trade_type | string(16) | 是 |
調(diào)用接口提交的交易類型,取值如下:JSAPI,NATIVE,APP,詳細說明見參數(shù)規(guī)定 示例值:JSAPI |
預支付交易會話標識 | prepay_id | String(64) | 是 | 微信生成的預支付會話標識,用于后續(xù)接口調(diào)用中使用,該值有效期為2小時 示例值:wx201410272009395522657a690389285100 |
二維碼鏈接 | code_url | String(64) | 否 | trade_type=NATIVE時有返回,此url用于生成支付二維碼,然后提供給用戶進行掃碼支付。 注意:code_url的值并非固定,使用時按照URL格式轉(zhuǎn)成二維碼即可 示例值:weixin://wxpay/bizpayurl/up?pr=NwY5Mz9&groupid=00 |
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<result_code><![CDATA[SUCCESS]]></result_code>
<mch_id><![CDATA[10000100]]></mch_id>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<sub_mch_id><![CDATA[375907253]]></sub_mch_id>
<device_info><![CDATA[123001]]></device_info>
<nonce_str><![CDATA[mb8t557HOLqv0soV]]></nonce_str>
<sign><![CDATA[A530CC111F66A1A6B040D4923E2D2726]]></sign>
<prepay_id><![CDATA[wx04025233661291269e5f7daa32c5aa0000]]></prepay_id>
<trade_type><![CDATA[APP]]></trade_type>
</xml>
名稱 | 描述 | 原因 | 解決方案 |
---|---|---|---|
INVALID_REQUEST | 參數(shù)錯誤 | 參數(shù)格式有誤或者未按規(guī)則上傳 | 訂單重入時,要求參數(shù)值與原請求一致,請確認參數(shù)問題 |
NOAUTH | 商戶無此接口權(quán)限 | 商戶未開通此接口權(quán)限 | 請商戶前往申請此接口權(quán)限 |
NOTENOUGH | 余額不足 | 用戶賬號余額不足 | 用戶賬號余額不足,請用戶充值或更換支付卡后再支付 |
ORDERPAID | 商戶訂單已支付 | 商戶訂單已支付,無需重復操作 | 商戶訂單已支付,無需更多操作 |
ORDERCLOSED | 訂單已關(guān)閉 | 當前訂單已關(guān)閉,無法支付 | 當前訂單已關(guān)閉,請重新下單 |
SYSTEMERROR | 系統(tǒng)錯誤 | 系統(tǒng)超時 | 系統(tǒng)異常,請用相同參數(shù)重新調(diào)用 |
APPID_NOT_EXIST | APPID不存在 | 參數(shù)中缺少APPID | 請檢查APPID是否正確 |
MCHID_NOT_EXIST | MCHID不存在 | 參數(shù)中缺少MCHID | 請檢查MCHID是否正確 |
APPID_MCHID_NOT_MATCH | appid和mch_id不匹配 | appid和mch_id不匹配 | 請確認appid和mch_id是否匹配 |
LACK_PARAMS | 缺少參數(shù) | 缺少必要的請求參數(shù) | 請檢查參數(shù)是否齊全 |
OUT_TRADE_NO_USED | 商戶訂單號重復 | 同一筆交易不能多次提交 | 請核實商戶訂單號是否重復提交 |
SIGNERROR | 簽名錯誤 | 參數(shù)簽名結(jié)果不正確 | 請檢查簽名參數(shù)和方法是否都符合簽名算法要求 |
XML_FORMAT_ERROR | XML格式錯誤 | XML格式錯誤 | 請檢查XML參數(shù)格式是否正確 |
REQUIRE_POST_METHOD | 請使用post方法 | 未使用post傳遞參數(shù) | 請檢查請求參數(shù)是否通過post方法提交 |
POST_DATA_EMPTY | post數(shù)據(jù)為空 | post數(shù)據(jù)不能為空 | 請檢查post數(shù)據(jù)是否為空 |
NOT_UTF8 | 編碼格式錯誤 | 未使用指定編碼格式 | 請使用UTF-8編碼格式 |
Customer Service Tel
Business Development
9:00-18:00
Monday-Friday GMT+8
Technical Support
WeChat Pay Global
ICP證