let postExtraData = {
appid: data.h5_url.extraData.appid,
contract_code: data.h5_url.extraData.contract_code,
contract_display_account: data.h5_url.extraData.contract_display_account,
mch_id: data.h5_url.extraData.mch_id,
notify_url: encodeURIComponent(data.h5_url.extraData.notify_url),//encodeURIComponent(data.h5_url.extraData.notify_url),
plan_id: data.h5_url.extraData.plan_id,//'195543'
request_serial: data.h5_url.extraData.request_serial,
timestamp: data.h5_url.extraData.timestamp,
outerid: data.h5_url.extraData.outerid,
sign: data.h5_url.extraData.sign
}
小程序纯签约展示该报错,使用公众号签约正常签约成功。
1、使用签名工具(https://pay.weixin.qq.com/doc/v2/tool/sign_verify)排查了签名没有问题
2、参数以及参数类型也没有问题
3、notify_url小程序端做了encode, 签名的时候没有encode
4、检查request_serial(请求序列号)或timestamp(时间戳)是int类型,并且时间戳是10位序列号大于10位:9223372036854776000
希望各位大佬帮忙看下,或者有没有哪一位原来遇到过,希望告知排查路径。
wx.navigateToMiniProgram({
appId: 'wxbd687630cd02ce1d',
path: 'pages/index/index',
extraData: postExtraData,
success(res) {
// 成功跳转到签约小程序
console.log("打印跳转成功res " + JSON.stringify(res))
},
fail(res) {
uni.showToast({
title: '取消签约',
})
setTimeout(() => {
uni.navigateBack()
}, 600)
console.log('fail:', res)
// 未成功跳转到签约小程序
},
complete(res){
console.log('complete:', res)
}
})

小程序签约,后端给前端的数据中,需要把notify_url做encode后去签名