美文网首页
微信支付

微信支付

作者: 指尖轻敲 | 来源:发表于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