认真检查,每个参数的正确性,打印一下签名的字符串是什么,一定要认真
1、网上有教程说timeStamp 字段的S是小写,其实是错的。请保持大写,请保持大写。
2、缺少appId,那么请检查你得到的JSON字符串是不是标准JSON字符串。
SDK中代码示例
//调用微信JS api 支付 function jsApiCall() { WeixinJSBridge.invoke( 'getBrandWCPayRequest', <?php echo $jsApiParameters; ?>, function(res){ WeixinJSBridge.log(res.err_msg); alert(res.err_code+res.err_desc+res.err_msg); } ); }
那么其中PHP输出部分,检查一下输出是对象,还是什么
jsApiParameters
如果实在不成,改成如下形式
//data 是正常的JSON才可以哦 function jsApiCall(data){ //data=$.parseJson(data); //alert(data.appId); WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId":data.appId, "nonceStr":data.nonceStr, "package":data.package, "paySign":data.paySign, "signType":data.signType, "timeStamp":data.timeStamp }, function(res){ WeixinJSBridge.log(res.err_msg); alert(JSON.stringify(res)); alert(res.err_code+res.err_desc+res.err_msg); } ); }