通過初始化請求:
1. 生成 pay_url 用於微信 App 裡開啟支付連結來喚起微信支付。
或
2. 生成 pay_info 以原生JS方式於微信 App 裡的H5頁面來進行交互驗證。
請求:後台請求交互模式
返回結果+通知:後台請求交互模式+後台通知交互模式
請求url:https://pay.ionlinepay.com/gateway/
POST Form-Data 內容體進行請求
字段名 | 變量名 | 必填 | 類型 | 說明 |
業務參數 | ||||
接口類型 | service | 是 | String(32) | 接口類型: ionline.pay.weixin.jspay.intl |
版本號 | version | 否 | String(8) | 版本號, version 默認值是1.0 |
字符集 | charset | 否 | String(8) | 可選值 UTF-8 ,默認為 UTF-8 |
签名方式 | sign_type | 否 | String(8) | 簽名類型,取值:MD5; 默認:MD5 |
商户号 | mch_id | 是 | String(32) | 商戶號,由平台分配 |
原生JS | is_raw | 是 | String(1) | 值為1 |
是否小程序支付 | is_minipg | 否 | String(1) | 值為1,表示小程序支付;不傳或值不為1,表示公眾賬號內支付 |
商户订单号 | out_trade_no | 是 | String(32) | 商戶系統內部的訂單號 ,32個字符內、 可包含字母,確保在商戶系統唯一 |
设备号 | device_info | 否 | String(32) | 終端設備號 |
商品描述 | body | 是 | String(127) | 商品描述 |
用户openid | sub_openid | 是 | String(128) | 微信用戶關注商家公眾號的 openid 公眾賬號或小程序ID * 有關如何獲取公眾號用戶的OpenID,請參考 微信公眾平台技術文檔 > 微信網頁授權。 |
公众账号或小程序ID | sub_appid | 是 | String(32) | 當發起公眾號支付時,值是微信公眾平台基本配置中的 App ID (應用ID); 當發起小程序支付時,值是對應小程序的 App ID |
附加信息 | attach | 否 | String(127) | 商戶附加信息,可做擴展參數 |
总金额 | total_fee | 是 | Int | 總金額,以分為單位,不允許包含任何字、符號 |
终端IP | mch_create_ip | 是 | String(16) | 訂單生成的機器 IP |
通知地址 | notify_url | 是 | String(255) | 接收平台通知的URL,需給絕對路徑,255字符內格式如:http://wap.tenpay.com/tenpay.asp,確保平台能通過互聯網訪問該地址 |
订单生成时间 | time_start | 否 | String(14) | 訂單生成時間,格式為yyyyMMddHHmmss,如2009年12月25日9點10分10秒錶示為20091225091010。時區為GMT+8 beijing。該時間取自商戶服務器。 注:訂單生成時間與超時時間需要同時傳入才會生效。 |
订单超时时间 | time_expire | 否 | String(14) | 訂單失效時間,格式為yyyyMMddHHmmss,如2009年12月27日9點10分10秒錶示為20091227091010。時區為GMT+8 beijing。該時間取自商戶服務器。 注:訂單生成時間與超時時間需要同時傳入才會生效。 |
商品标记 | goods_tag | 否 | String(32) | 商品標記,微信平台配置的商品標記,用於優惠券或者滿減使用 |
随机字符串 | nonce_str | 是 | String(32) | 隨機字符串,不長於 32 位 |
是否限制信用卡 | limit_credit_pay | 否 | String(32) | 限定用戶使用時能否使用信用卡,值為1,禁用信用卡;值為0或者不傳此參數則不禁用 |
签名 | sign | 是 | String(32) | MD5簽名結果,詳見“安全規範” |
數據按JSON的格式實時返回
字段名 | 變量名 | 必填 | 類型 | 說明 |
公眾賬號ID | app_id | 否 | String(32) | 服務商公眾號 App ID |
版本號 | version | 是 | String(8) | 版本號,version 默認值是 1.0。 |
字符集 | charset | 是 | String(8) | 可選值 UTF-8 ,默認為 UTF-8。 |
簽名方式 | sign_type | 否 | String(8) | 簽名類型,取值:MD5 ; 默認:MD5 |
返回狀態碼 | status | 是 | String(16) | 0表示成功,非0表示失敗此字段是通信標識,非交易標識,交易是否成功需要查看 result_code 來判斷 |
返回信息 | message | 否 | String(128) | 返回信息,如非空,為錯誤原因簽名失敗參數格式校驗錯誤 |
以下字段在 status 為 0的時候有返回 | ||||
業務結果 | result_code | 是 | String(16) | 0表示成功,非0表示失敗 |
商戶號 | mch_id | 是 | String(32) | 商戶號,由平台分配 |
設備號 | device_info | 否 | String(32) | 終端設備號 |
隨機字符串 | nonce_str | 是 | String(32) | 隨機字符串,不長於 32 位 |
錯誤代碼 | err_code | 否 | String(32) | 參考錯誤碼 |
錯誤代碼描述 | err_msg | 否 | String(128) | 結果信息描述 |
簽名 | sign | 是 | String(32) | MD5 簽名結果,詳見“安全規範” |
以下字段在 status 和 result_code 都為 0的時候有返回 | ||||
動態口令 | token_id | 是 | String(64) | 授權口令 |
支付連結 | pay_url | 是 | String(128) | 支付連結 |
原生態js支付信息 或 小程序支付信息 |
pay_info | 是 | String | 原生態 JS 支付:is_raw 為1時返回,JSON 格式的字符串,作用於原生態js支付時的參數 小程序支付:is_minipg 為1時返回,JSON 格式的字符串,作用於小程序支付時的參數 |
接口需要注意:所有傳入參數都是字符串類型!使用 JavaScript、PHP 等弱類型語言需
要關註一下。
示例代碼如下:
WeixinJSBridge.invoke("getBrandWCPayRequest",{
"appId" : "wx2421b1c4370ec43b", //公眾號名稱,由商戶傳入
"timeStamp":" 1395712654", //時間戳,自1970 年以來的秒數
"nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //隨機串
"package" : "prepay_id=u802345jgfjsdfgsdg888",
"signType" : "MD5", //微信簽名方式:
"paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信簽名
},function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {}
// 使用以上方式判斷前端返回,微信團隊鄭重提示:res.err_msg 將在用戶支付成功後返回ok,但並
不保證它絕對可靠。
});
請求:後台請求交互模式
返回結果+通知:後台請求交互模式+後台通知交互模式
請求參數列表
字段名 | 變量名 | 必填 | 類型 | 說明 |
公眾號id | appId | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
時間戳 | timeStamp | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
隨機字符串 | nonceStr | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
訂單詳情擴展字符串 | package | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
簽名方式 | signType | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
簽名 | paySign | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
返回值 | 變量名 | |||
err_msg | get_brand_wcpay_request:ok 支付成功 | |||
get_brand_wcpay_request:cancel 支付過程中用戶取消 | ||||
get_brand_wcpay_request:fail 支付失敗 |
注:JS API 的返回結果get_brand_wcpay_request:ok 僅在用戶成功完成支付時返回。由於前端交互複雜,get_brand_wcpay_request:cancel 或者get_brand_wcpay_request:fail 可以統一處理為用戶遇到錯誤或者主動放棄,不必細化區分。
注:商戶實現原生態頁面的請求地址必須提供支付授權目錄由服務商配置好,在微信提供的測試公眾賬號上無法調起支付(測試時可以在手機微信端文件傳輸助手中進行)。
Object参数说明:
字段名 | 變量名 | 必填 | 類型 | 說明 |
時間戳 | timeStamp | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
隨機字符串 | nonceStr | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
訂單詳情擴展字符串 | package | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
簽名方式 | signType | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
簽名 | paySign | 是 | String | 對應初始化請求中返回的pay_info中的信息 |
成功 | success | 是 | Function | 接口調用成功的回調函數 |
失敗 | fail | 是 | Function | 接口調用失敗的回調函數 |
完成 | complete | 是 | Function | 接口調用結束的回調函數(調用成功、失敗都會執行) |
回調類型 | errMsg | 說明 | ||
success | requestPayment:ok | 調用支付成功 | ||
fail | requestPayment:fail cancel | 用户取消支付 | ||
fail | requestPayment:fail (detail message) | 調用支付失敗,其中 detail message 為後台返回的詳細失敗原因 |
wx.requestPayment(
{
"timeStamp": "",
"nonceStr": "",
"package": "",
"signType": "MD5",
"paySign": "",
"success":function(res){},
"fail":function(res){},
"complete":function(res){}
});