A1:
1.首先确定商户号和密钥正确匹配(可先用测试号和对应的测试密钥验证是否正常,同样的代码,若测试的正常,正式的报错误,可以确定就是用正式商户号时没用对密钥)
2.确定参数至少要包括文档中的所有必填参数
3.确定所有参数名正确,不能有大写字母,且排序正确
4.确定在进行签名时的参数(包括对应的值)和调用接口时的参数(包括对应的值)除sign外完全一致(比如签名时有version这个参数,但实际调用接口时没传这个参数)
5.确定编码格式一定要是utf-8(之前有商户因为传入中文因编码格式问题导致这个问题)
6.调用公众号支付,需要动态获取pay_info里返回的内容。
线上签名验证工具1: https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=20_1
线上签名验证工具2: https://pay.weixin.qq.com/wiki/tools/signverify/?
A2:
1.首先确认接口请求地址是否用对
2.接口参数里mch_id传错值,如传了机构号或接口参数里传的mch_id传错
3.接口参数里传了sign_agentno参数,但值不对或实际商户并没有授权机构交易
4. 接口参数里传了groupno参数,但值不对
5. 接口参数里传了groupno参数,但是商户并不是门店商户
6. 接口参数里传的groupno参数值有误
A3:
1.首先确认密钥是否用对(特别是RSA签名验证, 是 要用商户管理平台-》系统设置-》密钥信息管理界面 查看平台公钥 里面的平台公钥信息, 不是 自己生成的商户公钥并 上传交易公钥 里的那个 , 上传交易公钥 和 查看平台公钥 里面是两个不同的公钥!!! )
2.必须动态获取所有返回参数和值
3.检查验签方法是否正确
A4:
1.首先看商户后台是否有做好特约商户APPID配置,必须要添加配置好对应公众号&小程序&移动应用AppID。配置指引地址: https://open.swiftpass.cn/openapi/doc?index_1=67&index_2=46&chapter_1=1217&chapter_2=1219
2.确认接口调用时传的sub_appid字段对应的值是否商户后台配置的
A5:
商户号没有向第三方(支付宝微信银联)报备好对应编号,提供对应商户号联系技术支持排查
A6:
传入的openid值本身有误,一般都是值多或者少了字符
A7:
调用接口对应的某个必填为是的字段没有传,xxx表示必填为是的字段名,如body
A8:
接口请求报文xml参数解析出错,请用UTF-8编码,检查请求xml是否格式有误,且编码格式必须保证是UTF-8
A9:
不支持的签名方法,检查sign_type字段是否传值正确
A10:
第一种:调用接口上送的商户号被冻结,需业务方面沟通解冻
第二种:需要将商户的交易识别码提交给微信再次申请支付权限
A11:
1、调用接口上送的商户号没开通对应支付类型,需业务方面沟通开通;
2、商户是有支付宝特殊费率通道,如果是特殊费率通道,没有报名成功是不能交易的,是通过查不到支付类型来体现的,因此会提示:“商户未开通[xxx]支付类型”。
A12:
被第三方微信风控了:
1.一般是涉及跨号支付发生(跨号支付是指请求接口时上送的用户openid是用A公众号获取的,但用户支付时是在B公众号,涉及两个不同的公众号),不跨号即可解决,若一定要支持跨号支付,只能是业务方面沟通申请千6通道商户号或支付类型
2.若排查确实不存在跨号支付行为但也发生,同样只能是业务方面沟通申请千6通道商户号或支付类型
A13:
1. 首先检查公众服务号是否经过认证或者认证过期,若没认证或过期则必须先进行认证
2.公众号已认证的前提下检查网页授权回调域名
A14:
1、如果是公众号支付,调用前端方法时传入参数和值有误或者缺失(如下所示必须传入appId、timeStamp、nonceStr、package、signType、paySign参数和对应值,对应值必须动态获取pay_info字段值内容,比如没传appId或者appId传的值并非pay_info里的值就会报错),仔细检查确保这些都正确
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":"XXX", //XXX动态获取初始化请求中返回的pay_info参数中appId值
"timeStamp":"XXX", //XXX动态获取初始化请求中返回的pay_info参数中timeStamp值
"nonceStr":"XXX", //XXX动态获取初始化请求中返回的pay_info参数中nonceStr值
"package":"XXX", //XXX动态获取初始化请求中返回的pay_info参数中package值
"signType":"XXX", //XXX动态获取初始化请求中返回的pay_info参数中signType值
"paySign":"XXX" //XXX动态获取初始化请求中返回的pay_info参数中paySign值
},
2、如果是小程序支付,首先 必须确认调用初始化请求API时一定有传 is_minipg参数且值为1, 其次 调用前端方法时传入参数和值都正确(如下所示必须传入timeStamp、nonceStr、package、signType、paySign参数和对应值,对应值必须动态获取pay_info字段值内容,比如没传timeStamp或者timeStamp传的值并非pay_info里的值就会报错)
wx.requestPayment(
{
'timeStamp': '',//动态获取初始化请求中返回的pay_info参数中timeStamp值
'nonceStr': '',//动态获取初始化请求中返回的pay_info参数中nonceStr值
'package': '',//动态获取初始化请求中返回的pay_info参数中package值
'signType': '',//动态获取初始化请求中返回的pay_info参数中signType值
'paySign': '', //动态获取初始化请求中返回的pay_info参数中paySign值
'success':function(res){},
'fail':function(res){},
'complete':function(res){}
})
A15:
一般是没有配置自己的支付授权目录或者目录配置错了导致,支付授权目录一般为jspai方法代码所在页面的文件路径。如果无法确定授权目录,可以先用苹果手机测试,会出现提示当前页面的URL未注册:xxx(xxx表示具体的目录地址, 注意是要到最后一个斜杠,多配置或者少配置内容都会有问题,如下图要配置的支付授权目录是http://ceshi.wmallcity.com/mall/html/YWZx-parking/ )
A16:
实现方式不对,需调整代码
1. 调用初始化请求API(API地址 https://open.swiftpass.cn/openapi/doc?index_1=67&index_2=46&chapter_1=1206&chapter_2=1207 )时必须传入is_raw字段,值为1,得到返回字段pay_info及值
2. 取pay_info的值调用公众号支付API
补充说明:绿色界面拉起支付只是原来2018年前接入过的存量商户还能兼容使用,但之后的新商户不再支持,需按上述说的两点调整
A17:
java方案:由于政策原因oracle提供的jdk包的JCE包是limited版本的,部分算法被限制,把JCE包替换成unlimited版本就好【见文档:SSL握手失败解决方案整理】
php:没有证书的地址 试试 或者 解除POST请求地址证书验证策略 【商户同样的代码在另一个服务器上可以运行,也有可能是服务器有所限制】
A18:
1.处理接收异步通知的方法存在问题,导致接收不了
2.接口请求时上送的通知地址notify_url值外网无法访问(或者平台通知服务器无法访问),这样就算平台再怎么通知也是收不到的
3.商户通知地址有存在重定向的情况,也会接收不到
A19:
这些情况属于微信风控,微信风控具体情况不会对外,需业务方面沟通跟进处理
A20:
A21:
Jsapi内置对象,只能在支付宝或微信APP里的H5页面才能用,其他如电脑端是没定义的
A22:
下单时调用接口是传了用户OpenID的(加密后的微信号,对应接口字段sub_openid的值,每个用户对每个公众号的OpenID是唯一的,且对于不同公众号,同一用户的OpenID不同),就必须保证下单时的账号和支付时的账号一致,如果你用你的微信账号下单了,就只有你的微信账号才能支付,用别的微信账号支付的话,就会报“下单账号与支付账号不一致”
A23:
出现上述情况说明商户号对应支付类型存在限额,比如测试号单笔最大限额1元,则total_fee传值不能超过100
A24:
由于政策银行变更通道导致的协议发生变化,而协议是与系统绑定的,所有导致出现这个问题,需银行登录到支付宝开发者中心检查下,还有协议上的问题是否有变动
A25:
平台配置有问题,识别码不属于这个机构,需业务上联系处理
A26:
由于进件接口传的商户收款URL值一致那么返回的银标码URL值也是一样的,需进件时区分商户收款URL值。
A27:
被支付宝风控,此类问题或者报错都需要商户说明情况和补充资料,向支付宝发起申诉。若是银行商户:需要商户联系银行,说明情况和补充资料,银行审核没有问题,由银行发起申诉。
A28:
配置参数错误:第三方商户号、商户简称(最多八个字)
A29:
微信:以10、11、12、13、14、15开头的18位纯数字
支付宝:25~30开头的长度为16~24位的数字
QQ钱包:91开头18位数字
翼支付:51开头,18位数字
银联/京东付款码规则:62开头,17到21位
A30:
公众号已过期。
A31:
需要银行找支付宝去申请开通按通道校验余额的机制
A32:
可以的,但对账数据就查不到。
A33:
1、检查查代码检查参数值是否错误
2、检查JS字段值是否用双引号引用
A34:
参数quantity和price要传整型。
A35:
新进渠道商特约商户资料补充说明:
https://pay.weixin.qq.com/static/help_guide/register_guide.shtml
A36:
是因为直营商户继承连锁商户的识别码,这种情况不需要再到子商户下面配置;而加盟商户的识别码是一户一报,跟连锁商户不一致,需要单独配置。
A37:
订单已支付,不能再用这笔订单号调用接口。
A38:
机构没有授权交易权限原因导致,如果要采用机构模式交易,需要授权机构交易权限。
A39:
1.本身整个通道没有开通公众号的支付权限
2.只是这一个商户没开通公众号的支付权限
A40:
请求地址弄错了,支付接口的地址不能用于下载对账单。
A41:
商户号与渠道号没有对应上。
A42:
连锁商户号不能直接调用接口发交易,需要用下面的子商户(门店)调用接口,即接口调用时mch_id字段应该传子商户(门店)的编号。
A43:
提交相关信息给商务BD申请提高退款日限额笔数。
A44:
一般来讲非java的都是使用pkcs1格式的,所以.net语言涉及RSA签名时也是用pkcs1格式的密钥,但.net开发时具体签名方法可以做转换处理,转换后也可以使用pkcs8格式的密钥,比如我们提供的demo中示例
A45:
同一笔订单号不能重复调用接口,需要确保订单号唯一。
A46 :
1.订单已经申请过退款,重复申请;
2.该笔订单未支付成功;
3.订单总金额total_fee字段传值不正确。
A47:
详情可见 https://open.swiftpass.cn/openapi/doc?index_1=111&index_2=56&chapter_1=1752&chapter_2=1756
A48:
支付宝如果用户没有扫码,第三方是没有生成订单,这种情况会提示“订单不存在”。
A49:
微信:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2
支付宝:https://docs.open.alipay.com/270/105902
银联:01是借记,02是贷记
A50 :
下单的appid和调用环境不一致,比如:下单时传的是公众号appid,但调起支付的场景在小程序里面发起支付。
A 51 :
请求时service值是pay.weixin.native,生成的二维码用支付宝扫会提示这个
A 52 :
扫描错了接口返回链接,应该扫描二维码图片code_img_url这个链接对应的二维码图片,不是二维码链接code_url
A53 :
使用RSA签名方式进行签名,使用的参数与支付网关地址确是微信侧官方的
A54 :
need_receipt参数传值不正确,值必须是true或false,且得是小写。
A55 :
网络策略设置导致。
A56 :
一笔订单两天前请求过,两天后再次请求接口会返回<err_code><![CDATA[Order date limit]]></err_code><err_msg><![CDATA[订单已过期]]></err_msg>,即不能将两天前请求过的订单再次发起请求。
A57 :
通道对应支付类型被冻结时会有此提示,请联系商务或技术支持协调处理。
A58 :
请求报文里传错字段名,不是传appid和openid,应该是传sub_appid和sub_openid。
A59 :
商户号默认每天退款最多100笔,超过100笔会报这个提示,若因为实际业务需要一天退款超过100笔,可以业务方面沟通处理。
A60 :
没有在对应商户编号的商户管理平台上传商户公钥信息。
解决方案:登录商户管理平台,根据生成上传指引: https://open.swiftpass.cn/openapi/doc?index_1=9&index_2=1&chapter_1=172&chapter_2=1151 上传好商户交易公钥( 特别注意:必须确保上传交易公钥界面的商户编号和接口调用时mch_id的值保持一致 )
A61:
两个原因导致:
1、没有开通接口权限,需联系技术支持确认
2、后台有开通权限,但serviceName传错值
<response><isSuccess>F</isSuccess><errorCode>S9999</errorCode><errorMsg>系统错误</errorMsg></response>
A62:
1、目前一般是网络问题连接超时或服务异常,可以重试或者联系技术支持确认
A63:
1、xml标签前后不一致,比如后面的少了斜杠(<idCardType><idCardType>),前后两个参数名不一致(<idCardType></idCardype>)
2、涉及日期的字段,传了字段,但值是空或者值格式有误
3、Int和Integer类型的字段传的值不是整数或超出取值范围(取值范围是从-2147483648 至 2147483647)
A64:
1、partner机构号对应值在平台上查看到激活状态是“未激活”或“冻结”
2、partner机构号传错值
3、机构号和请求地址不匹配(比如请求地址是正式环境的,但机构号是测试的)
A65:
后台配置可能有误,需联系技术支持确认
A66:
请求方法的编码格式必须是application/x-www-form-urlencoded;charset=UTF-8,不是这样会报这个
A67:
后台配置可能有误,需联系技术支持确认
A68:
1、调用接口只上传了了基本参数,图片没有真正上传到接口服务器(Form上图)
2、绿洲图片上传时支付中心传错
3、若其他操作都OK仍然上传异常,还返回{"success":false,"errorCode":"sys.error.9999","msg":"系统异常","status":0},则是协议头没有boundary
4、后台配置可能有误,需联系技术支持进一步确认
Q69.接口返数字验签失败
A69:
1、机构号和密钥对应不匹配
2、dataSign的值是大写(必须是小写的才行)
3、签名时上送了signType参数和值,并参与了签名(实际签名时应当忽略此参数和值)
Q70.商户报备状态查询接口时返回报备记录不存在
A70:
通道编号值传错
调用交易识别码查询接口返回“<response><isSuccess>F</isSuccess><errorCode>S0005</errorCode><errorMsg>合作伙伴信息不存在</errorMsg></response>”
A71:
正式机构号参数,调错了地址,请求到测试环境的地址去了
<response><isSuccess>F</isSuccess><errorCode>B004</errorCode><errorMsg>未授权的操作</errorMsg></response>
A72:
涉及多级机构时发生,后台接口权限配置时没有授权子机构
A73:
交易识别码查询接口商户没有审核激活时,接口返回机构关系错误
A74:
1、商户侧设置的费率小于所属渠道的成本费率;
2、渠道侧设置的成本费率大于下级商户的费率;
3、看后台的费率设定和接口传值都没问题,实际是因为后台有调整费率,刚好调整在调用接口报错后
A75:
所属机构和partner不存在上下级关系
A76:
一般情况下接口默认规则如此,若有特殊情况如有商户账户名确实包含横杠,请联系技术支持处理
A77:
一般是机构分润查询接口和商户手续费查询接口返回,可能未开放或未做好配置,请联系技术支持确认
A78:
没有上送idCode参数
A79:
买家支付宝账号buyer_logon_id或买家支付宝用户ID即buyer_id传值有误,请按照支付宝服务窗支付文档说明传真实有效的
A80:
上述情况均为付款码无效,需重新上送正确有效的付款码数字,即auth_code字段的值必须正确且没有过期失效
A80:
拉起签约的小程序前端方法传相关字段和值有误
A82:
代扣模板存在问题导致
1、代扣模板没有申请通过
2、代扣模板申请方式有误,商户申请的不行,必须是服务商给商户申请通过的才行
A83:
申请代扣模板时填的解约通知地址有误导致,必须填写 https://payentrust.swiftpass.cn/pay/notify/wxentrust/pay.weixin.entrust.applycontract
A84:
支付宝WAP没有服务商模式,支付类型配置信息里 第三方商户号KEY必须配置好支付宝平台的MD5密钥,配置好后才可以正常支付
A85:
商户平台没有进行授权,授权后可正常交易
A86:
一般是客户开发版本接入时,平台商户号添加好的微信刷脸支付类型配置信息里第三方商户号为空导致,将付款码支付的第三方商户号填入后得到解决
A87:
主要发生于交易接口调用正常,查询和退款等其他接口调用时出现,涉及原因有以下
①调用交易接口和调用其他接口时请求报文中有个字段sign_agentno上送不一致,比如说交易有上送,其他接口则没上送,或者交易没上送,但其他接口调用时又上送了
②统一主扫交易接口和其他接口调用时都上送了sign_agentno,但仍然报无操作权限,则需要联系技术支持开启SPAY RSA配置权限,且开启后只对新订单生效,开启前已存在的订单不生效,仍然会是报无操作权限
A88:
这种情况一般是时间的问题导致,检查接口调用所在服务器是否和北京时间同步,也可以试下不传time_start和time_xepire这两个参数和值重新调用看是否正常
A89:
商户号没有开好或者同步好支付类型,需要银行业务经理确认商户号是否有添加好对应的支付类型
A90:
此现象发生于调用支付接口时service传了pay.weixin.native,生成的二维码超过4小时后才扫码
A91:
由于上传其中图片文件大于1M导致。
A92:
1、mch_id字段传值不正确
2、确认mch_id传值正确仍返回此提示,则是对账单下载地址错误,不同收单机构的请求地址可能不同,请提供mch_id值联系技术支持确认
A93:
不会有通知,只有订单支付成功后才会有通知(注:统一付款码支付方式因不存在通知机制,故统一付款码订单支付成功后也不会有通知)
A94:
两种都可以,推荐使用2048位安全度更高
A95:
检查前端JS方法传的tradeNo值是否正确
A96:
当天内可以再用,但不推荐再次使用;建议将交易流水号和业务流水号区分开,可以减少业务流水号依赖影响。
A97:
可以;两种方案实现(注:方案中不同收单机构通知地址可能会有变化,具体请联系技术支持确认)
方案一、将异步通知地址收到的结果再次推送到https://spay3.swiftpass.cn/spay/pay/notify?p={"opUserId":"商户号"} (商户号传数字)这个通知地址;
方案二、向银行申请多方通知配置,邮件申请内容,商户号、MD5密钥、通知地址:https://spay3.swiftpass.cn/spay/pay/notify?p={"opUserId":"商户号"} (商户号传数字)。
A98:
交易状态CLOSED【关闭】有两种转变方式:一是主动请求关单接口;二是长时间及多次查询订单状态第三方标识返回关闭状态。
A99:
目前接口没有超时状态返回,二维码被扫码订单默认只有10分钟有效期,过期自动失效。
A100:
对应环境找不到商户号(如商户号本身有误平台找不到,或者请求地址是正式平台的,而商户号却是测试环境的)
A 101:
上送的time_start和time_expire对应的值时间间隔超过一天零一分
A102:
微信公众号&小程序初始化请求接口请求时没有上送sub_openid字段导致,必须上送sub_openid字段,对应的值为通过sub_appid字段值(公众号或小程序的应用AppID)获取到的用户openid
A103:
存量的appid(已配置的原主体appid)交易不影响,可继续发起公众号交易,但新主体appid绑定,要主体一致才能绑定的(若公众号交易必须走新appid,需以新主体重新进件)。
A104:
小程序没有跨号一说,小程序不能跨号支付。
需要进行支付宝交易授权操作;