admin管理员组文章数量:1026989
服务商模式支付签名验证失败php,服务商模式小程序支付签名失败,请求管理员和大牛解决!!!...
服务商模式小程序支付签名失败,请求管理员和大牛解决!!!
根据服务商模式的小程序支付文档:
①商户server调用支付统一下单:
统一下单成功返回预付单:
order
appid"wx11aa86ff470f0e4f"// 服务商的appid
mch_id"1518613291"// 服务商的mch_id
nonce_str"3acnTtQYjSqgbZL8"
prepay_id"wx10155845519876977e1ceaa42184415093"
result_code"SUCCESS"
return_code"SUCCESS"
return_msg"OK"
sign"5EBF79C3D17140CF4946985C4E1C4A00B9472BB3DE5E30FD3546E0AB216BAA62"
sub_appid"wx7ba8336d4ed76238"// 特约商户号小程序的appid
sub_mch_id"1520123771" // 特约商户号
trade_type"JSAPI"
②商户server调用再次签名:
生成签名PHP代码:
$appId = $order['sub_appid']; // 特约商户小程序的appid:wx7ba8336d4ed76238
$nonceStr = $order['nonce_str']; // 随机串
$package = "prepay_id=".$order['prepay_id']; // 数据包
$signType = "MD5"; // 签名方式
$timeStamp = time(); // 时间戳
$key = "XXXXXXXXXXXXXXXXXXXXXXXX"; // 特约商户的密钥key
// 第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
$stringA = "appId=".$appId."&nonceStr=".$nonceStr."&package=".$package."&signType=".$signType."&timeStamp=".$timeStamp;
// 第二步:拼接API密钥
$stringSignTemp = $stringA ."&key=".$key;
// MD5签名方式
$sign = md5($stringSignTemp);
// 字符串所有字符转换为大写
$paySign = strtoupper($sign);
返回
timeStamp1544428725
nonceStr"3acnTtQYjSqgbZL8"
package"prepay_id=wx10155845519876977e1ceaa42184415093"
signType"MD5"
paySign"2A6BBEBE8B4DB46A9E6BB52233F77D2D"
③小程序调起支付API:
wx.requestPayment({
'timeStamp': "1544428725",
'nonceStr': "3acnTtQYjSqgbZL8",
'package': "prepay_id=wx10155845519876977e1ceaa42184415093",
'signType': "MD5",
'paySign': "2A6BBEBE8B4DB46A9E6BB52233F77D2D",
'success': function (res) {
console.log(res)
},
'fail': function (res) {
console.log(res)
},
'complete': function (res) {
console.log(res)
},
})
返回
{err_code: 2, err_desc: "支付验证签名失败", errMsg: "requestPayment:fail"}
服务商模式支付签名验证失败php,服务商模式小程序支付签名失败,请求管理员和大牛解决!!!...
服务商模式小程序支付签名失败,请求管理员和大牛解决!!!
根据服务商模式的小程序支付文档:
①商户server调用支付统一下单:
统一下单成功返回预付单:
order
appid"wx11aa86ff470f0e4f"// 服务商的appid
mch_id"1518613291"// 服务商的mch_id
nonce_str"3acnTtQYjSqgbZL8"
prepay_id"wx10155845519876977e1ceaa42184415093"
result_code"SUCCESS"
return_code"SUCCESS"
return_msg"OK"
sign"5EBF79C3D17140CF4946985C4E1C4A00B9472BB3DE5E30FD3546E0AB216BAA62"
sub_appid"wx7ba8336d4ed76238"// 特约商户号小程序的appid
sub_mch_id"1520123771" // 特约商户号
trade_type"JSAPI"
②商户server调用再次签名:
生成签名PHP代码:
$appId = $order['sub_appid']; // 特约商户小程序的appid:wx7ba8336d4ed76238
$nonceStr = $order['nonce_str']; // 随机串
$package = "prepay_id=".$order['prepay_id']; // 数据包
$signType = "MD5"; // 签名方式
$timeStamp = time(); // 时间戳
$key = "XXXXXXXXXXXXXXXXXXXXXXXX"; // 特约商户的密钥key
// 第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
$stringA = "appId=".$appId."&nonceStr=".$nonceStr."&package=".$package."&signType=".$signType."&timeStamp=".$timeStamp;
// 第二步:拼接API密钥
$stringSignTemp = $stringA ."&key=".$key;
// MD5签名方式
$sign = md5($stringSignTemp);
// 字符串所有字符转换为大写
$paySign = strtoupper($sign);
返回
timeStamp1544428725
nonceStr"3acnTtQYjSqgbZL8"
package"prepay_id=wx10155845519876977e1ceaa42184415093"
signType"MD5"
paySign"2A6BBEBE8B4DB46A9E6BB52233F77D2D"
③小程序调起支付API:
wx.requestPayment({
'timeStamp': "1544428725",
'nonceStr': "3acnTtQYjSqgbZL8",
'package': "prepay_id=wx10155845519876977e1ceaa42184415093",
'signType': "MD5",
'paySign': "2A6BBEBE8B4DB46A9E6BB52233F77D2D",
'success': function (res) {
console.log(res)
},
'fail': function (res) {
console.log(res)
},
'complete': function (res) {
console.log(res)
},
})
返回
{err_code: 2, err_desc: "支付验证签名失败", errMsg: "requestPayment:fail"}
本文标签: 服务商模式支付签名验证失败php服务商模式小程序支付签名失败,请求管理员和大牛解决!!!
版权声明:本文标题:服务商模式支付签名验证失败php,服务商模式小程序支付签名失败,请求管理员和大牛解决!!!... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694662693a254715.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论