6 掃碼支付接口

6.1 掃碼支付接口

6.1.1 業務功能

初始化掃碼請求,通過該請求生成二維碼來進行掃碼支付。

6.1.2 交互模式

請求:後臺請求交互模式 返回結果+通知:後臺請求交互模式+後臺通知交互模式

6.1.3 請求參數列表


請求 url:https://gateway.wepayez.com/pay/gateway


POST XML 內容體進行請求

字段名變數名必填類型說明
接口類型serviceString(32)接口類型:pay.alipay.native.intl
版本號versionString(8)版本號,version 默認值是 2.0
字元集charsetString(8)字元集,取值:UTF-8
簽名方式sign_typeString(8)簽名類型,取值:MD5
商戶號mch_idString(32)商戶號,由平臺分配
商戶訂單號out_trade_noString(32)商戶系統內部的訂單號,32個字元內、可包含字母,確保在商戶系統唯一
設備號device_infoString(32)終端設備號
商品描述bodyString(127)商品描述
附加資訊attachString(127)商戶附加資訊,可做擴展參數
總金額total_feeInt金額,以支付貨幣為准,以分為單位。如支付貨幣為港幣,1000表示HKD10.00。測試商戶號最大限額 100 分/筆(即 1 元/筆)
終端IPmch_create_ipString(16)訂單生成的機器 IP
通知地址notify_urlString(255)接收平臺通知的URL,需給絕對路徑,255字元內格式如:http://wap.tenpay.com/tenpay.asp,確保平臺能通過互聯網訪問該地址
限制信用卡limit_credit_payString(1)限定用戶使用時能否使用信用卡,值為1,禁用信用卡,值為0,或者不傳此參數則不禁用
訂單生成時間time_startString(14)訂單生成時間,格式為yyyymmddhhmmss如2009年12月25日9點10分10碼錶示為20091225091010。時區為GMT+8beijing。注:訂單生成時間與超時時間需要同時傳入才會生效。
訂單超時時間time_expireString(14)訂單失效時間,格式為 yyyymmddhhmmss,如2009年12月27日9點10分10碼錶示為20091227091010。時區為GMT+8beijing。注:訂單生成時間與超時時間需要同時傳入才會生效。
操作員op_user_idString(32)操作員帳號,默認為商戶號
商品標記goods_tagString(32)商品標記,用於優惠券或者滿減使用
商品 IDproduct_idString(32)預留字段。此 id 為靜態可列印的二維碼中包含的商品 ID,商戶自行維護
隨機字串nonce_strString(32)隨機字串,不長於 32 位
簽名signString(32)MD5 簽名結果,詳見“第 4 章 MD5 簽名規則”

6.1.4 返回結果

數據按 XML 的格式即時返回

字段名變數名必填類型說明
版本號versionString(8)版本號,version 默認值是 2.0。
字元集charsetString(8)字元集,取值:UTF-8。
簽名方式sign_typeString(8)簽名類型,取值:MD5
返回狀態碼statusString(16)0表示成功,非0表示失敗。此字段是通信標識,非交易標識,交易是否成功需要查看 result_code 來判斷
返回資訊messageString(128)返回資訊,如非空,為錯誤原因簽名失敗參數格式校驗錯誤

以下字段在 status 為 0 的時候有返回

字段名變數名必填類型說明
業務結果result_codeString(16)0 表示成功,非 0 表示失敗
商戶號mch_idString(32)商戶號,由平臺分配
設備號device_infoString(32)終端設備號
隨機字串nonce_strString(32)隨機字串,不長於 32 位
錯誤代碼err_codeString(32)參考錯誤碼
錯誤代碼描述err_msgString(128)結果資訊描述
簽名signString(32)MD5 簽名結果,詳見“第 4 章 MD5 簽名規則

以下字段在 status 和 result_code 都為 0 的時候有返回

字段名變數名必填類型說明
二維碼鏈接code_urlString(64)此參數可直接生成二維碼展示出來進行掃碼支付
二維碼圖片code_img_urlString(256)直接用此鏈接請求二維碼圖片

6.2 掃碼通知接口

6.2.1 通知結果參數列表

通知URL是支付接口中提交的參數notify_url,支付完成後,平臺會把相關支付和用戶資訊發送到該URL,商戶需要接收處理資訊。

對後臺通知交互時,如果平臺收到商戶的應答不是純字串 success 或超過5秒後返回時,平臺認為通知失敗,平臺會通過一定的策略(通知頻率為0/15/15/30/180/1800/1800/1800/1800/3600,單位:秒)間接性重 新發起通知,盡可能提高通知的成功率,但不保證通知最終能成功。 由於存在重新發送後臺通知的情況, 因此同樣的通知可能會多次發送給商戶系統。商戶系統必須能夠正確處 理重複的通知

推薦的做法是, 當收到通知進行處理時, 首先檢查對應業務數據的狀態, 判斷該通知是否已經處理過, 如 果沒有處理過再進行處理, 如果處理過直接返回結果成功。 在對業務數據進行狀態檢查和處理之前, 要採用 數據鎖進行併發控制, 以避免函數重入造成的數據混亂。

特別注意:商戶後臺接收到通知參數後,要對接收到通知參數裏的訂單號 out_trade_no 和訂單金額 total_fee 和自身業務系統的訂單和金額做校驗,校驗一致後才更新資料庫訂單狀態

後臺通知通過請求中的 notify_url 進行, post 方式返回數據流,具體資訊是 xml 格式的串(商戶方在處理時要注意)。

字段名變數名必填類型說明
版本號versionString(8)版本號,version 默認值是 2.0。
字元集charsetString(8)字元集,取值:UTF-8。
簽名方式sign_typeString(8)簽名類型,取值:MD5
返回狀態碼statusString(16)0 表示成功,非 0 表示失敗。此字段是通信標 識,非交易標識,交易是否成功需要查看 result_code 來判斷
返回資訊messageString(128)返回資訊,如非空,為錯誤原因簽名失敗參數格式校驗錯誤

以下字段在 status 為 0 的時候有返回

字段名變數名必填類型說明
業務結果result_codeString(16)0 表示成功,非 0 表示失敗
商戶號mch_idString(32)商戶號,由平臺分配
設備號device_infoString(32)終端設備號
隨機字串nonce_strString(32)隨機字串,不長於 32 位
錯誤代碼err_codeString(32)參考錯誤碼
錯誤代碼描述err_msgString(128)結果資訊描述
簽名signString(32)MD5 簽名結果,詳見“第 4 章 MD5 簽名規則”

以下字段在 status 和 result_code 都為 0 的時候有返回

字段名變數名必填類型說明
用戶標識openidString(128)用戶支付寶的帳戶名
交易類型trade_typeString(32)pay.alipay.native.intl
支付結果pay_resultInt支付結果:0—成功;其他—失敗
支付結果資訊pay_infoString(64)支付結果資訊,支付成功時為空
平臺訂單號transaction_idString(32)對應支付寶交易記錄帳單詳情中的商戶訂單號
第三方商戶號out_transaction_idString(32)對應支付寶交易記錄帳單詳情中的交易號
商戶訂單號out_trade_noString(32)商戶系統內部的定單號,32 個字元內、可包含字母
總金額total_feeInt總金額,以分為單位,不允許包含任何字、符號
貨幣種類fee_typeString(8)貨幣類型,符合 ISO 4217 標準的三位字母代碼,默認港幣:HKD
附加資訊attachString(127)商家數據包,原樣返回
付款銀行bank_typeString(16)銀行類型
支付完成時間time_endString(14)支付完成時間,格式為 yyyyMMddhhmmss,如2009 年 12 月 27 日 9 點 10 分 10 碼錶示為20091227091010。時區為 GMT+8 beijing。

6.2.2 後臺通知結果回饋

後臺通知結果回饋 平臺伺服器發送通知,post 發送 XML 數據流,商戶 notify_Url 地址接收通知結果,接收方法 demo 有寫(如 php 中的 callback 方法,c#中的 notify.aspx 檔,java 中的 TestPayResultSerlet 方法),商戶做業務處理後, 需要以純字串的形式回饋處理結果,內容如下:

返回结果结果说明
success處理成功,平臺收到此結果後不再進行後續通知
fail 或其他字元處理不成功,平臺收到此結果或者沒有收到任何結果,系統通過補單機制(詳見第 5 節)再次通知

6.3 訂單查詢接口

6.3.1 業務功能

根據商戶訂單號或者平臺訂單號查詢平臺的具體訂單資訊。

6.3.2 交互模式

後臺系統調用交互模式

6.3.3 請求參數列表

請求 url:https://gateway.wepayez.com/pay/gateway 通過 POST XML 內容體進行請求

字段名變數名必填類型說明
接口類型serviceString(32)接口類型:unified.trade.query
版本號versionString(8)版本號,
version默認值是 2.0。
字元集charsetString(8)字元集,取值:UTF-8。
簽名方式sign_typeString(8)簽名類型,取值:MD5
商戶號mch_idString(32)商戶號,由平臺分配
商戶訂單號out_trade_noString(32)商戶系統內部的訂單號, out_trade_no 和 transaction_id 至少一個必填,同時存在 時 transaction_id 優先
平臺訂單號transaction_idString(32)平 臺 交 易 號 , out_trade_no 和transaction_id至少一個必填,同時存在 時 transaction_id 優先。
隨機字串nonce_strString(32)隨機字串,不長於 32 位
簽名signString(32)MD5 簽名結果,詳見“第 4 章 MD5 簽名規則”

6.3.4 返回結果

數據按 XML 的格式即時返回

字段名變數名必填類型說明
版本號versionString(8)版本號,version 值是 2.0。
字元集charsetString(8)字元集,取值:UTF-8。
簽名方式sign_typeString(8)簽名類型,取值:MD5
返回狀態碼statusString(16)0表示成功,非0表示失敗。此字段是通信標識,非交易標識,交易是否成功需要查看 trade_state 來判斷
返回資訊messageString(128)返回資訊,如非空,為錯誤原因簽名失敗參數格式校驗錯誤

以下字段在 status 為 0 的時候有返回

字段名變數名必填類型說明
業務結果result_codeString(16)0 表示成功,非 0 表示失敗
商戶號mch_idString(32)商戶號,由平臺分配
設備號device_infoString(32)終端設備號
隨機字串nonce_strString(32)隨機字串,不長於 32 位
錯誤代碼err_codeString(32)參考錯誤碼
錯誤代碼描述err_msgString(128)結果資訊描述
簽名signString(32)MD5 簽名結果,詳見“第 4 章 MD5 簽名規則”

以下字段在 status 和 result_code 都為 0 的時候有返回

字段名變數名必填類型說明
交易狀態trade_stateString(32)SUCCESS—支付成功 REFUND—轉入退款 NOTPAY—未支付 CLOSED—已關閉 REVERSE—已沖正 REVOK—已撤銷

以下字段在 trade_state 為 SUCCESS 的時候有返回

字段名變數名必填類型說明
交易類型trade_typeString(32)pay.alipay.native.intl
平臺訂單號transaction_idString(32)對應支付寶交易記錄帳單詳情中的商戶訂單號
第三方商戶號out_transaction_idString(32)對應支付寶交易記錄帳單詳情中的交易號
商戶訂單號out_trade_noString(32)商戶系統內部的定單號,32 個字元內、可包含字母
總金額total_feeInt總金額,以分為單位,不允許包含任何字、符號
現金券金額coupon_feeInt現金券支付金額<=訂單總金額,訂單總金額-現金券金額為現金支付金額
貨幣種類fee_typeString(8)貨幣類型,符合 ISO 4217 標準的三位字母代碼,默認港幣:HKD
附加資訊attachString(127)商家數據包,原樣返回
付款銀行bank_typeString(16)銀行類型
銀行訂單號bank_billnoString(32)銀行訂單號,若為支付寶支付則為空
支付完成時間time_endString(14)支付完成時間,格式為 yyyyMMddhhmmss,如2009 年 12 月 27 日 9 點10 分 10 碼錶示為20091227091010。時區為 GMT+8 beijing。