【小程序AppID】wx30cf9b7061881425
【Offer ID】1450482474
【商品ID】test_product_001
【后台价格】0.01元(道具已发布到正式环境,等待超过10分钟)
【问题描述】
1. 使用 wx.requestVirtualPayment 调起支付
2. 所有签名计算正确,但一直返回 -15006 PAY_SIG_INVALID
3. 已按字母顺序排列字段,签名自验通过
【请求参数】
{
"attach": "{\"openid\":\"oP9kx3XkbMfdrTkiw0NZbfNSQPi8\",\"shareOpenid\":\"\",\"test\":true}",
"buyQuantity": 1,
"currencyType": "CNY",
"env": 0,
"goodsPrice": 1,
"offerId": "1450482474",
"outTradeNo": "TEST_1773321440060_6hnvrg",
"productId": "test_product_001"
}
【生成的签名】
paySig: 6f12f78a72a358ad3854173b75aa6af6ab8c23ba90c7600721eb109a0a8384b7
signature: 82d1ad1b681bc80c7083c6937f5ca58584fab647316d2015868606ea6ed7049c
【错误信息】
errCode: -15006, errMsg: "requestVirtualPayment:fail PAY_SIG_INVALID"
【已尝试的排查】
1. 商品已发布到正式环境,等待超过10分钟
2. 字段按字母顺序排列
3. 签名全部小写
4. 新建了 test_product_001 商品,价格1分
【怀疑的问题点】
1. 价格单位问题:后台填的是0.01元,代码传 goodsPrice:1(1分),这个单位是否正确?
2. 商品是否真的生效了?
3. 米大师后台是否有其他隐藏配置?
【求助】
1. 请官方帮忙验证签名是否正确
2. 确认价格单位应该是“元”还是“分”
3. 能否帮忙查一下这个订单的详细错误日志?
谢谢!

计算签名的代码发出来看看,不然没法判断问题在哪里
找到问题了吗?
报错就说明你计算签名有问题,特别需要注意的是沙箱和正式环境 key 并不通用