验签出错-自查方案

来自    其他 | 
作者:我是个导演  |  更新于:2017-09-12 16:24:05     
错误原因:
  1.密钥不匹配
  2.编码格式不统一
  3.请求参数中有空格,转义符,特殊字符(基本上会出现在biz_content中
  4. notify_url不能加?id=123这类自定义参数
    错误示例:https://您的域名/notify_url.php?id=123&test=abc
   注:如果您的请求报错请同时检查您的异步地址是否符合要求
  
  5..NET开发语言请注意在自查上述问题,没有发现问题,请更新官方最新sdk在重新测试。
  官方最新.NET sdk下载地址:https://docs.open.alipay.com/54/103419/

检查流程
  第一步(重点检查),检查自己的项目中的私钥和上传的商户公钥是否匹配,建议使用这个帖子自查【点击查看
 
  第二步:检查项目编码和请求的编码是否统一,不统一导致中文乱码,从而导致请求报错
   乱码参数示例 :"subject\":\"鎮ㄥソ\"
app_id=2015052600090779&biz_content={\"out_trade_no\":\"20250320010101001\",\"total_amount\":\"88.88\",\"subject\":\"鎮ㄥソ\",\"body\":\"Iphone616G\",\"timeout_express\":\"90m\"}&charset=gbk&method=alipay.trade.precreate&sign_type=RSA2×tamp=2017-08-25 08:08:08&version=1.0"}

  第三步,检查请求参数
    错误参数示例(有空格):在 subject\":\"您好 \ 后面有一个空格

app_id=2015052600090779&biz_content={\"out_trade_no\":\"20250320010101001
\",\"total_amount\":\"88.88\",\"subject\":\"您好 \",\"body\":\"Iphone616G\",\"timeout_express\":\"90m\"}&charset=utf-8&method=alipay.trade.precreate&sign_type=RSA2×tamp=2017-08-25 08:08:08&version=1.0"}
   错误示例(转义符) :在out_trade_no\":\\\"20250320010101001\\\" 拼接参数有误导致
app_id=2015052600090779&biz_content={\"out_trade_no\":\\\"20250320010101001\\\",\"total_amount\":\"88.88\",\"subject\":\"您好\",\"body\":\"Iphone616G\",\"timeout_express\":\"90m\"}&charset=utf-8&method=alipay.trade.precreate&sign_type=RSA2×tamp=2017-08-25 08:08:08&version=1.0"}
 
建议:如果有官方demo可以使用官方demo测试。只配置账号和密钥进行请求,先保证demo可以正常请求,然后在往项目中集成

相关接口测试帖子可以参考该帖:点击查看】  
如果上面方案走了还是报同样的错按照下面方式提供一下(信息不完整不回复)  
正确的提问方式:测试环境(沙箱&正式)+请求参数+appid

如果大家有什么疑问,可以在帖子下方追问吐槽
Beidd | 2017-11-28 21:49:36
沙箱环境
请求参数:alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2016082500309054&biz_content=%7B%22body%22%3A%22%E5%85%85%E5%80%BC%2CuserId%3D141b572a-a46b-11e5-8316-00163e00491f%2Camount%3D1.00%22%2C%22goods_type%22%3A%220%22%2C%22out_trade_no%22%3A%22adb204b6-d442-11e7-9b52-00163e005048%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22subject%22%3A%22%E5%85%85%E5%80%BC%2CuserId%3D141b572a-a46b-11e5-8316-00163e00491f%22%2C%22timeout_express%22%3A%2230m%22%2C%22total_amount%22%3A%221.00%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay&notify_url=http%3A%2F%2F17b444u139.iok.la%2Frest%2Falipay%2FnotifyUrl&sign=kOkXrGuPnKf4fj7x7Rz%2BLNM3nEcZCOmSAur%2FqHr638mAvA%2BYwtP2iljSG%2Fiz62Vq4gFYpa3C5ZhrWUn1LlAXfpFwxmPnS1mU%2Brt%2Be4EPddkj3liV9NhG8fkDpO40%2Bjr6xdwj%2B91kpdW2pXYvM1jrZqkERcLzMv2%2BlEyujDPS4THjLnZyYTukpjXI1hasLYLT%2F8nQpBlHzjuvR1UmWx97UD%2Br6JnJ2sYN9XGM9C8x3dB6Bv0voTkyy%2F8TpYuROXRUVMk6GA27WI0559wWEhTxV1%2BHrIdTc%2Fri%2FLnc5Ql652J%2FGokSIFO7Lnlvx8kuzWkDVlQJTT9G6mEnkb5Kh5Bs5Q%3D%3D&sign_type=RSA2&timestamp=2017-11-28+21%3A47%3A29&version=1.0
appId:2016082500309054
响应结果:payResult:: resultStatus={4000};memo={};result={{"alipay_trade_app_pay_response":{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.invalid-signature","sub_msg":"验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2016082500309054&charset=UTF-8&format=json&method=alipay.trade.app.pay&notify_url=http://17b444u139.iok.la/rest/alipay/notifyUrl&sign_type=RSA2&timestamp=2017-11-28 21:47:29&version=1.0"}}}
我是个导演 | 2017-11-29 09:19:58
Beidd:沙箱环境
请求参数:alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2016082500309054&biz_content=%7B%22body%22%3A%22%E5%85%85%E...
回到原帖
首先你这个请求参数中有自定义参数:biz_content={"body":"充值,userId=141b572a-a46b-11e5-8316-00163e00491f,amount=1.00","goods_type":"0","out_trade_no":"adb204b6-d442-11e7-9b52-00163e005048","product_code":"QUICK_MSECURITY_PAY","subject":"充值,userId=141b572a-a46b-11e5-8316-00163e00491f","timeout_express":"30m","total_amount":"1.00"}比如这个"goods_type":"0", 看你是java的开发语言,可以使用这个帖子的demo测试一下,只配置你的账户和密钥:https://openclub.alipay.com/read.php?tid=2376&fid=60
小爱 | 2018-03-06 19:43:59
{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.invalid-signature","sub_msg":"验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:alipay_sdk=alipay-sdk-go&app_id=2018012902104433&biz_content={"out_trade_no":"L123456","trade_no":"123456"}&charset=UTF-8&format=json&method=alipay.trade.query&sign_type=RSA2&timestamp=2018-03-06 19:37:20&version=1.0"},"sign":"YBLC769f9/JvkGbzltqPNJwlCCxvYQRwtPtH7ohn5x6XZ5RCXV2vaeQSjzyG7drqayq8MDCmV0sCp3DWCBmwR34PiK3oqojusZPGSydG7JD8y7xoiXG/CworeWMz5UNCSRXslQM3amrxas/ERJRcR911Sx1akjsKXXye4mYfdHii0oTPuQXtRQ3N92avtVAM5413Y16oDVaiC2lBE1v/weaSKAJIr+Qi/+zmnItuFEeAo4eZGFXxwaZov55tvUHsZC15oFCemX2hrTMM49AX76DCwy25bHtE4KNkuZGbqmWVczkQDoOfP5ciXR6+wjweZx57EEjegyHb674OdYFeQA=="}
您好!这是github上的golang实现的sdk,地址:github.com/LayGit/antsdk/alipay  能否帮我看一下什么问题,根据你提供的排查帖子也检查了,怀疑是这个sdk有问题,另问一下,官方怎么没有golang语言的sdk,谢谢!
天籁 | 2018-03-07 09:29:28
小爱:{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.invalid-signature","sub_msg":"验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生...回到原帖
你好,这边私信你了
小爱 | 2018-03-08 10:21:54
天籁:你好,这边私信你了回到原帖
好的  谢谢
bosuo | 2018-03-14 15:56:11
错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2018022702280467&charset=utf-8&format=json&method=alipay.trade.wap.pay&return_url=http://www.bonshop.cn/zfbr.jsp&sign_type=RSA2&timestamp=2018-03-14 11:48:33&version=1.0

用沙箱的APPID、支付宝公钥ALIPAY_PUBLIC_KEY,请求dev的网关,可以弹出跳转支付宝页面的,跳转后提示操作超时,重新发起支付;同样的代码,用自己的APPID、支付宝公钥,请求非dev的地址,就会出现上述报错提示。

密钥换了两次了,都不行(检查过,没问题)
天籁 | 2018-03-14 16:06:42
bosuo:错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:alipay_sdk=alipay-sdk-java-dynamicVersionNo&ap...回到原帖
你好,请你贴出你这边沙箱和正式账号调用接口的请求的参数或是form表单,方便判断问题
bosuo | 2018-03-14 16:25:30
天籁:你好,请你贴出你这边沙箱和正式账号调用接口的请求的参数或是form表单,方便判断问题回到原帖
String out_trade_no="8888888888";//订单号(唯一)
String total_amount="888";//订单金额
String subject="测试";//标题
alipayRequest.setBizContent("{ \"out_trade_no\":\""+out_trade_no+"\",\"total_amount\":\""+total_amount+"\",\"subject\":\""+subject+"\",\"product_code\":\"QUICK_WAP_PAY\" }");//填充业务参数
天籁 | 2018-03-14 16:44:21
bosuo:String out_trade_no="8888888888";//订单号(唯一)
String total_amount="888";//订单金额
String subject="测试";//标题
alipayRequest.setBi...
回到原帖
你好,这边查询到你正式appid的请求参数是没有传入biz_content参数的,这个参数是必须传入的,建议你这边查看一下传参代码确认一下是否成功传值,建议你这边使用手机网站支付的demo来配置你的appid和秘钥测试一下,demo下载地址:https://openclub.alipay.com/read.php?tid=1720&fid=40
bosuo | 2018-03-14 17:54:43
天籁:你好,这边查询到你正式appid的请求参数是没有传入biz_content参数的,这个参数是必须传入的,建议你这边查看一下传参代码确认一下是否成功传值,建议你这边使用手机网站支付的demo来配置你的appid和秘钥测试一下,demo下载地址...回到原帖
alipayRequest.setBizContent("{" +
" \"out_trade_no\":\"20150320010101002\"," +
" \"total_amount\":\"88.88\"," +
" \"subject\":\"Iphone6 16G\"," +
" \"product_code\":\"QUICK_WAP_PAY\"" +
" }");//填充业务参数
这段是从文档复制的,还是报一样的错,biz_content没有,为什么呢
bosuo | 2018-03-14 18:10:19
天籁:你好,这边查询到你正式appid的请求参数是没有传入biz_content参数的,这个参数是必须传入的,建议你这边查看一下传参代码确认一下是否成功传值,建议你这边使用手机网站支付的demo来配置你的appid和秘钥测试一下,demo下载地址...回到原帖
换用demo中的 alipayRequest.setBizModel(model);方法,也不行,仍然为空
阿帅 | 2018-03-14 20:43:32
GET
https://openapi.alipay.com/gateway.do?app_id=2018022702280207&method=alipay.system.oauth.token&charset=GBK&sign_type=RSA2&timestamp=2018-03-14 20:33:37&version=1.0&grant_type="authorization_code"&code="39c0011205594ddfb26cbed002d0XX31&sign=RFPPCXybxLfYPOIp4IMq2ch2Woc1bxaSTch/yRzTq20z52jcVwFyB5RT9+u+pBIEFwPJ/4xlc+YtOdzBwW6YpwQbBEBSCorBOsMxZH2fIzJFjl4GP2sybPL0ETXm5n21r0MDAnLayZEdfyrmfdEcq0eenmeC2KQAvN3BUiWcIL27neT/7yAzlxXoRCRnz0TNdrX/b8zuiwhW2F9UDRwioWceUaF/TVZRrXIvPQVAZZJ2sHkkV2Mh2N4lz7+zzMz/CZ6zFCOd6afqP8RqeYEGycvs4QAH4f9EWIQSeYHdGaq1g6tkr0N+SFFKKt2UdPY5hQN9qFBifR6qByaSzfU83g==
返回
{"error_response":{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.invalid-signature","sub_msg":"验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:app_id=2018022702280207&charset=GBK&code="39c0011205594ddfb26cbed002d0XX31&grant_type="authorization_code"&method=alipay.system.oauth.token&sign_type=RSA2&timestamp=2018-03-14 20:33:37&version=1.0"},"sign":"MeP0axa+mHruHzM0FdGjdDdLPoArSX5w5etEgcp/IdeIwAAExgj16dqoWUjAWEWxI65o0CJPxwUq9RDwmmlijT2cCUumQUElTAW0/us6TLUcaqDxsX4Khj17e+kyFuqy+FppVghm0Un4Rj8eoS2vBWDnh6JMhIzZZwL5xs8+1DOxJAJcGmwFA8ZrIxgkoa2g1iMbxEQv06e6B456Dh7S7xXeoCzKEqV3D7ULlFFZ5hpUvdxAvT6NHmMe7Jfx89j702CJRiP68HZNuS9O5X6F7EM3rTtIpZETecmM5TbSLKKrRwRNFdSR7LrhUOb/Q1snYbm+ZSYJvmnRYztmqzBJfw=="}
天籁 | 2018-03-15 09:12:06
bosuo:alipayRequest.setBizContent("{" +
" \"out_trade_no\":\"20150320010101002\"," +
" \"total_amount\":\"88.88\"," +
" \"subj...
回到原帖
你好,建议你这边打上断点看一下参数是否正确传值,建议你先使用demo测试一下保证demo测试成功再参考demo集成到项目中,手机网站支付的Java版本demo在之前的回帖中给你的帖子的末尾下载
bosuo | 2018-03-15 14:28:28
天籁:你好,建议你这边打上断点看一下参数是否正确传值,建议你先使用demo测试一下保证demo测试成功再参考demo集成到项目中,手机网站支付的Java版本demo在之前的回帖中给你的帖子的末尾下载回到原帖
谢谢,demo的支付接口可以用,但是demod的交易查询接口报错了,sign check fail: check Sign and Data Fail! 求解是怎么回事,详细在这https://openclub.alipay.com/read.php?tid=5111&fid=61
我的回复
回复数
  134
阅读数
  11992

返回顶部