線上支付開發文檔
【微信】公眾號支付

業務功能

通過初始化請求:
1. 生成 pay_url 用於微信 App 裡開啟支付連結來喚起微信支付。

2. 生成 pay_info 以原生JS方式於微信 App 裡的H5頁面來進行交互驗證。

交互模式

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

請求參數列表

請求url:https://pay.ionlinepay.com/gateway/
POST Form-Data 內容體進行請求


1. 初始化請求

字段名 變量名 必填 類型 說明
業務參數
接口類型 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 格式的字符串,作用於小程序支付時的參數


2. 於微信 App 裡調用支付API


2.1. 公眾號支付


使用示例

接口需要注意:所有傳入參數都是字符串類型!使用 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,但並
不保證它絕對可靠。
});

getBrandWCPayRequest 參數以及返回值定義


交互模式

請求:後台請求交互模式
返回結果+通知:後台請求交互模式+後台通知交互模式
請求參數列表


請求參數列表

字段名 變量名 必填 類型 說明
公眾號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 可以統一處理為用戶遇到錯誤或者主動放棄,不必細化區分。
注:商戶實現原生態頁面的請求地址必須提供支付授權目錄由服務商配置好,在微信提供的測試公眾賬號上無法調起支付(測試時可以在手機微信端文件傳輸助手中進行)。



2.2. 小程序調起支付

調用wx.requestPayment(OBJECT)發起微信支付

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){}
});