经历了一个星期,我真的快绝望了....真的希望哪位大神可以救救我........
好了,我还是问一些问题吧,走过路过的大牛,千万不要错过对我问题的解答啊啊
首先:通过官网给的统一下单地址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)你签名中的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)重新安装微信后试试。
好的,谢谢技术大大。问题解决了。
确实是API秘钥的问题。
部门之间信息传递造成的错误。
害我苦找几天啊I_I!!