收藏
回答

海外微信支付时,调用JSAPI接口报错"$key0$参数格式错误\"如何解决?

海外微信支付时,调用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"
    }
}


请各位大佬看到解答一下,研究了很久还没有找到解决方案,谢谢各位!










回答关注问题邀请回答
收藏

2 个回答

  • smile的微笑
    smile的微笑
    2023-04-13

    已解决,补充一下我的解决方案。

    所有非必要的参数不要填写,试试支付模式采用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"
        }
    }
    
    2023-04-13
    有用
    回复
  • 粗茶淡饭
    粗茶淡饭
    2023-03-23

    看不出来 你自检下吧

    大致出现$key0$问题一般有:

    1.没有转换成string类型。

    2.传的各个参数不正确。

    3.测试的地址,跟代码里的地址不一致。

    2023-03-23
    有用
    回复
登录 后发表内容