美文网首页
微信支付

微信支付

作者: 指尖轻敲 | 来源:发表于2018-07-09 10:07 被阅读7次

微信支付API文档

示例代码

  • appId:公众号名称,由商户传入
  • timeStamp:时间戳
  • nonceStr:随机字符串,随机数生成规则
  • package:统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=***
  • signType:签名方式:默认是MD5,支持HMAC-SHA256和MD5。
  • paySign:签名,签名生成算法规则
// 以下代码可以放在一个点击事件里面,所需参数从服务端获取
function onBridgeReady(){
    WeixinJSBridge.invoke(
        'getBrandWCPayRequest',
        {
            "appId": appId,
            "timeStamp": timeStamp,
            "nonceStr": nonceStr,
            "package": package,
            "signType": signType,
            "paySign": paySign
        },
        function(res){
            if(res.err_msg == "get_brand_wcpay_request:ok"){
                alert("您已支付成功");
            }
        }
    );
}
if(typeof WeixinJSBridge == "undefined"){
    if(document.addEventListener){
        document.addEventListener("WeixinJSBridge",onBridgeReady,false);
    }else if(document.attachEvent){
        document.attachEvent('WeinxinJSBridgeReady',onBridgeReady);
        document.attachEvent('WeinxinJSBridgeReady',onBridgeReady);
    }
}else{
    onBridgeReady();
}

JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。get_brand_wcpay_request:cancel(支付过程取消)或者get_brand_wcpay_request:fail(支付失败)可以统一处理为支付失败,不用细分。

常见报错

微信web开发工具中报错{"errMsg":"没有此SDK或暂不支持此SDK模拟"}

微信开发者工具不支持支付,用手机测试就可以了。

调用支付JSAPI缺少参数timeStamp

这里注意所有参数的值都是字符串类型,这里接收到的时间戳是个数字,用toString()方法转换。

支付验证签名失败

这个一般就是后台给传过来的签名不对。

相关文章

网友评论

      本文标题:微信支付

      本文链接:https://www.haomeiwen.com/subject/fxfajftx.html