海外微信支付时,调用JSAPI接口报错"$key0$参数格式错误\"如何解决?
支付方式:公众号JSAPI支付
开发语言:C# .NET Core 6.0
参考官网文档:https://pay.weixin.qq.com/wiki/doc/api_external/ch/apis/chapter3_3_1.shtml
调用接口:https://apihk.mch.weixin.qq.com/v3/global/transactions/jsapi
详细错误如下:
"{\"code\":\"PARAM_ERROR\",\"message\":\"$key0$参数格式错误\"}"
参数如下:
{
"mchid":"xxx",
"appid":"xxx",
"description":"xxx Service Fees",
"out_trade_no":"H202303221679461475",
"notify_url":"https://helpfor.fans/api/pay/weixin/Callback",
"goods_tag":"H202303221679461475",
"trade_type":"JSAPI",
"merchant_category_code":"4816",
"attach":"H202303221679461475",
"payer":{
"openid":"o4o985lmdiziOZcwrugp-xxx"
},
"amount":{
"total":100,
"currency":"HKD"
},
"scene_info":{
"payer_client_ip":"xxx.71.231.xxx"
}
}
请各位大佬看到解答一下,研究了很久还没有找到解决方案,谢谢各位!
已解决,补充一下我的解决方案。
所有非必要的参数不要填写,试试支付模式采用NATIVE,这种无需openid,如果可以正常生成就没问题,
然后再尝试JSAPI,相对NATIVE模式,多了一个openid,我是因为乱用了openid,所以才一直提示这个错误。
用小传程序授权生成的就可以正常了。哎
{ "mchid":"xxx", "appid":"xxx", "out_trade_no":"Order202304131954024659", "merchant_category_code":"4111", "description":"test", "notify_url":"https://xxx.com/notify", "trade_type":"JSAPI", "payer":{ "openid":"xx" }, "amount":{ "total":100, "currency":"HKD" } }
看不出来 你自检下吧
大致出现$key0$问题一般有:
1.没有转换成string类型。
2.传的各个参数不正确。
3.测试的地址,跟代码里的地址不一致。