微信支付报错“支付签名验证失败”
2017-08-12 19:36
423 查看
微信支付有几个地方需要注意的
sign 签名时需要在末尾增加key参数 key 参数在商户后台进行设置sign签名验证
wx.config 签名验证工具url 参数必须是当前js运行所在的url(包括参数) 如果签名失败可能跟支付的授权目录有关
微信创建统一订单时返回的数据格式中只有prepay_id参数有用,其他返回的参数无用
wx.chooseWXpay 在调起微信支付时需要二次签名(sign签名),其中有个地方需要注意(巨坑)。具体二次签名如下
$appid = 'appid'; //appid
$randstr = '123123213213'; //随机字符串
$time = '123456789'; //时间戳
$key = 'keyyyyyyyy'; //商户后台设置的key
$prepayid = 'wx2017060115493564b5a926a10145685802';//假设统一订单返回的prepayid
$prepayid = 'prepay_id='.$prepayid;//这里要组装(我是坑)
$signstr = "appId={$appid}&nonceStr={$randstr}&package={$prepayid}&signType=MD5&timeStamp={$time}&key={$key}";
//生成需要签名的字符串为
//appId=appid&nonceStr=123123213213&package=prepay_id=wx2017060115493564b5a926a10145685802&signType=MD5&timeStamp=123456789&key=keyyyyyyyy";
$paysign = strtoupper(md5($signstr));
//data 为返回为前台数据
$data = [
'nonceStr' => $randstr,
'timestamp' => $time,
'signType' => 'MD5',
'paySign' => $paysign,
'package' => $prepayid,
];
wx.chooseWXpay 中有个参数timestamp 不是timeStamp 需要签名的时间戳都是timeStamp js里的都是小写的。
相关文章推荐
- 微信公账号支付:签名验证失败的解决办法
- 微信小程序支付开发爬坑攻略(支付签名验证失败)
- 支付宝电脑网站支付,回调时签名验证失败
- 微信公众平台支付 一直提示签名认证失败,签名对比正确,却提示签名不正确,关于prepay_id造成签名验证不正确的问题
- 微信支付-支付验证签名失败,跳转无响应等
- 微信支付——支付签名验证失败的坑
- 微信jsapi支付验证签名失败
- 微信公众号支付支付验证签名失败及公众号支付总结
- 微信支付 支付验证签名失败
- java官方工具包微信H5支付报“支付验证签名失败”
- ##iOS中的微信支付 支付验证签名失败
- 微信支付:服务器(Java)统一下单获取prepay_id成功,前端公众号里调用jsapi提示支付验证签名失败
- 铁通、长宽网络支付时“签名失败”问题分析及解决方案 [88222001]验证签名异常:FAIL[20131101100002-142]
- 关于微信APP支付,提示支付验证签名失败
- 微信支付提示支付验证签名失败
- 微信公众号之支付验证签名失败
- 微信支付SDK “支付验证签名失败”,怎么也找不到原因?
- 支付宝支付异步通知签名验证sign和mysign不一致的问题
- PHP 支付宝 异步 MD5 签名验证失败
- 百度地图打包签名后,地图key验证失败问题解决.