微信html5 支付接口,微信内H5调起支付

注意:WeixinJSBridge内置对象在其他浏览器中无效。

列表中参数名区分大小,大小写错误签名验证会失败。

getBrandWCPayRequest参数以及返回值定义:

**1、网页端接口请求参数列表**

|名称|变量名|必填|类型|示例值|描述|

| --- | --- | --- |--- |--- |--- |

| 时间戳| timeStamp| 是| String(32)| 1414561699| 当前的时间,其他详见时间戳规则|

| 随机字符串| nonceStr| 是| String(32)| 123123|随机字符串,不长于32位。推荐随机数生成算法|

|订单详情扩展字符串| package| 是| String(128)| prepay_id=123456789|统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=|

| 签名方式| signType| 是| String(32)| MD5|签名类型,默认为MD5,支持HMAC-SHA256和MD5。注意此处需与统一下单的签名类型一致|

| 签名| paySign| 是| String(64)| 123456|签名,详见签名生成算法|

**参与签名参数为:appId、timeStamp、nonceStr、package、signType,请注意参数大小写。**

2、返回结果值说明

|返回值|描述|

| --- | --- |

| get_brand_wcpay_request:ok| 支付成功|

| get_brand_wcpay_request:cancel| 支付过程中用户取消|

| get_brand_wcpay_request:fail| 支付失败|

| 调用支付JSAPI缺少参数:total_fee| 请检查预支付会话标识prepay_id是否已失效|

**注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。**

示例代码如下:

```

function onBridgeReady(){

WeixinJSBridge.invoke(

getBrandWCPayRequest, {

"timeStamp":"1395712654", //时间戳,自1970年以来的秒数

"nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串

"package":"prepay_id=u802345jgfjsdfgsdg888",

},

function(res){

if(res.err_msg == "get_brand_wcpay_request:ok" ){

//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

}

});

}

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener(WeixinJSBridgeReady, onBridgeReady, false);

}else if (document.attachEvent){

document.attachEvent(WeixinJSBridgeReady, onBridgeReady);

document.attachEvent(onWeixinJSBridgeReady, onBridgeReady);

}

}else{

onBridgeReady();

}

```

注意:WeixinJSBridge内置对象在其他浏览器中无效。 列表中参数名区分大小,大小写错误签名验证会失败。 getBrandWCPayRequest参数以及返回值定义: **1、网页端接口请求参数列表** |名称|变量名|必填|类型|示例值|描述| | --- | --- | --- |--- |--- |--- | | 时间戳| timeStamp| 是| String(32)| 1414561699| 当前的时间,其他详见时间戳规则| | 随机字符串| nonceStr| 是| String(32)| 123123|随机字符串,不长于32位。推荐随机数生成算法| |订单详情扩展字符串| package| 是| String(128)| prepay_id=123456789|统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=| | 签名方式| signType| 是| String(32)| MD5|签名类型,默认为MD5,支持HMAC-SHA256和MD5。注意此处需与统一下单的签名类型一致| | 签名| paySign| 是| String(64)| 123456|签名,详见签名生成算法| **参与签名参数为:appId、timeStamp、nonceStr、package、signType,请注意参数大小写。** 2、返回结果值说明 |返回值|描述| | --- | --- | | get_brand_wcpay_request:ok| 支付成功| | get_brand_wcpay_request:cancel| 支付过程中用户取消| | get_brand_wcpay_request:fail| 支付失败| | 调用支付JSAPI缺少参数:total_fee| 请检查预支付会话标识prepay_id是否已失效| **注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。** 示例代码如下: ``` function onBridgeReady(){ WeixinJSBridge.invoke( getBrandWCPayRequest, { "timeStamp":"1395712654", //时间戳,自1970年以来的秒数 "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串 "package":"prepay_id=u802345jgfjsdfgsdg888", }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 } }); } if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener(WeixinJSBridgeReady, onBridgeReady, false); }else if (document.attachEvent){ document.attachEvent(WeixinJSBridgeReady, onBridgeReady); document.attachEvent(onWeixinJSBridgeReady, onBridgeReady); } }else{ onBridgeReady(); } ```
经验分享 程序员 微信小程序 职场和发展