微信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(); } ```