收藏
回答

APP支付总是签名错误

经历了一个星期,我真的快绝望了....真的希望哪位大神可以救救我........

好了,我还是问一些问题吧,走过路过的大牛,千万不要错过对我问题的解答


首先:通过官网给的统一下单地址URL:https://api.mch.weixin.qq.com/pay/unifiedorder ,把数据传输出去

string url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
 
//检测必填参数
if (!inputObj.IsSet("body"))
    throw new WxPayException("缺少统一支付接口必填参数body!");
else if (!inputObj.IsSet("total_fee"))
    throw new WxPayException("缺少统一支付接口必填参数total_fee!");
else if (!inputObj.IsSet("trade_type"))
    throw new WxPayException("缺少统一支付接口必填参数trade_type!");
 
//异步通知url未设置,则使用配置文件中的url
if (!inputObj.IsSet("notify_url"))
{
  inputObj.SetValue("notify_url", WxPayConfig.NOTIFY_URL);
}//异步通知url           
inputObj.SetValue("appid", WxPayConfig.APPID);//公众账号ID
inputObj.SetValue("mch_id", WxPayConfig.MCHID);//商户号
//inputObj.SetValue("spbill_create_ip", WxPayConfig.IP);//终端ip             //这里的终端ip地址  是必须填写的么?       
inputObj.SetValue("nonce_str", GenerateNonceStr());//随机字符串
inputObj.SetValue("out_trade_no", GenerateOutTradeNo());//订单号 
//签名
string Ssign = inputObj.MakeSign(inputObj.GetValues());
inputObj.SetValue("sign", Ssign);     //eg: 735E3B1C4B23690CC959DB438E93A399//代码中的这个sign值,和手机应用发布出来的 MD5签名是否一致
 
string xml = inputObj.ToXml();
 
string response = HttpService.Post(xml, url, false, timeOut);



通过HttpService.Post函数,给我返回了:return_code = FAIL        return_msg = 签名错误


问题零:APP应用发布后,在通过统一下单地址提交信息时,哪些信息必须提交.......我从网上搜不到, ←望大神一定告知这一点!→


问题一:代码中,终端ip  是必须填写的么?      如果这个 终端ip 不提交会不会有什么影响?                                          求解。。


问题二:代码中,签名sign值,是否和打包发布后的APP的MD5签名一样?                                                                     求解。。


问题三:我确定了我的 appid 、mch_id 、Apikey 绝对一致 没有问题。。。除了这些参数,我还需要注意哪些?          求解。。


问题四:在确认了上述这些问题后,我(猪脑袋)开始严重怀疑是不是官方给的统一下单地址有问题........因为直接点开下单地址,它就                  会提示return_code = FAIL        return_msg = 签名错误.............让我不得不怀疑


大神还看出来有哪些问题,也希望告知一下。。。。我真的只是一名实习生,希望大佬们能救救我这个可怜的孩子................



真的

还有救

!!!!!!


大佬直接加我QQ也行:841298494

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

1 个回答

  • 微信支付技术助手4
    微信支付技术助手4
    2019-05-06

    按照以下几点来检查,

    1)你签名中的key,也就是你的API密钥key,这个参数要你们自己到商户平台设置的,设置的规则是32位数字与字母大小写的组合的随机数,不能设置成签名串和参数appsecrete,你们有正确设置吗???

    2)检查开放平台对应的包名与签名是否有正确设置。

    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 这里有详细的设置说明。

    3)调用支付使用的noncestr这个参数必须和商家服务器调用统一下单接口返回的那个noncestr一致

    4)从预支付订单返回的数据 ,没有重新签名,也会引起这个问题。

    5)重新安装微信后试试。


    2019-05-06
    有用 1
    回复 2
    • LvJ_Hywj
      LvJ_Hywj
      2019-05-07

      好的,谢谢技术大大。问题解决了。

      确实是API秘钥的问题。

      部门之间信息传递造成的错误。

      害我苦找几天啊I_I!!

      2019-05-07
      回复
    • 锐
      2019-10-15
      key必须要有大小写一起吗
      2019-10-15
      回复
登录 后发表内容