服务商模式支付签名验证失败php,服务商模式小程序支付签名失败,请求管理员和大牛解决!!!...

服务商模式小程序支付签名失败,请求管理员和大牛解决!!!

8f2685ff0a7206089b264a3ceeb26401.png

d27b1d6dec18bfcbfd140064143106fe.png

根据服务商模式的小程序支付文档:

①商户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"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值