对接浦发银行支付(九)-- 总结对接其生产环境的踩过的大小坑

一、背景

在完成对接浦发的沙盒环境后,天真地认为:对接生产商户的过程将会是水到渠成。
被残酷的现实摧残打击之后,打算补充一篇文章,把对接浦发的生产环境踩过的坑整理出来。

有句话不吐不快,生产环境下又得把沙盒环境的操作再来一遍,花费那么多时间对接沙盒环境真的是多此一举,无疑是浪费双方的时间。

沙盒环境和生产环境的相关性极低,只有浦发银行API开放平台是共用的,无需你再次去申请APP。
在这里插入图片描述
不同的地方就太多了,见下表:

是否相同备注
商户号对应字段mrchId
终端号对应字段terminalNo
Secret
clientId一个APP一个clientId,对应上图的X-SPDB-Client-ID
开发者sm2密钥对
浦发银行sm2公钥
rsa密钥对用于支付回调的报文解密和验签
订阅API接口host不同,uri相同

1、对接浦发沙盒环境

在这里插入图片描述

2、对接浦发生产环境

在这里插入图片描述

因为浦发银行支付回调的地址,不仅要登记我们的出口IP地址,而且对端口有要求,只回调80/443端口。

从上图可以看到,我们的生产环境默认就是提供80/443端口,这一点没问题。

但是,公司的研发环境下,第三方支付要访问到内网机器,是通过内外网映射做到的。

也就是说,无法像生产环境那样提供80/443端口让第三方支付回调进来。

这是需要浦发银行走审批流程的,沙盒环境下一天能完成,而生产环境至少3个工作日才能完成。(望知晓这个漫长的等待时间)

二、需要重复做的事项

太多弯弯绕了,对接的时候,就让把所有的手续走完,浦发就愣是走一步算一步。不到你联调说报错了,打死不说还需要做两个事情–这个和那个。(这也是我为什么要写这篇文章的原因,希望你能少走弯路,仅限于希望,实际还是被牵着鼻子走)

  • 申请生产商户
  • 分配终端号给我们
  • 微信商户和支付宝商户的认证,完善资料
  • 出口IP报备
    填写的是弹性公网IP(我们是在阿里云购买的EIP服务,将EIP绑定到ECS实例,使ECS实例可以连接公网。我们这里是绑定到NAT网关,在NAT网关中维护SNAT条目)

在这里插入图片描述

  • 需要登记微信公众号appId(我这里涉及到一个公众号和两个小程序)
    在这里插入图片描述

  • 订阅api接口(前文说过的六个接口:对公收款支付、对公收款交易查证、对公收款支付退货、对公收款订单关闭、对公收单API对账单下载、公共文件下载)(支付回调接口是由我们提供)

在这里插入图片描述

三、联调遇到过的报错

1、“errCode”:“CBAS003”,“errInfo”:“交易不支持,(请在控制台配置API交易白名单)”

我这边的错误原因是,请求浦发生产环境的时候,商户号和终端号还是使用沙盒环境下的。

为什么会犯这个错呢?

作为对接方,首先不知道商户号会不会变更,群里问过对方,要他们核实过。

当然,我以为商户号是不变的,问他们终端号变还是不变的!!

2、“errCode”:“CBAS000”,“errInfo”:“交易处理失败”

这里要说,它们的报错提示信息都很抽象,抽象到你无法知晓错在哪,一脸懵逼!!!

我这里是因为只更新了商户号,漏了把沙盒环境下的终端号改为生产环境下的终端号。

3、“errCode”:“CBAS006”,“errInfo”:“商户终端经纬度校验未通过”

那是那几句话,不知道错在哪,只能交由浦发银行对接人员去排查。
怎么解决的,我也无从知晓。

该错是在对接jsapi支付的时候报的,后面对方解决了哈。

4、支付成功,没有收到回调

我们是通过接口传参,把支付回调地址给到浦发银行的。
联调沙盒环境的时候,能够收到支付回调。

支付回调地址不变,对接浦发生产环境,死活收不到对方的支付回调,别问我是什么原因,知识已严重超纲了。

幸好我是调用主动查询支付结果接口,更新支付订单的状态,要不然后面的退款都无法测试下去了。

5、扫码付,提示我们去完善商户资料

联系相关人员进行微信支付认证和支付宝支付认证,等待商户号完成认证。

在这里插入图片描述
在沙盒环境下,我们已做过这些认证。但是,因为商户号变了,故又需要对新的商户号进行认证。

四、浦发银行API开发平台的IP白名单配置

在联调的时候,报错-- “errCode”:“CBAS003”,“errInfo”:“交易不支持,(请在控制台配置API交易白名单)”,让我们把外网出口IP配置到“IP白名单”里。

后来发现,不是那么回事。只是这个发现的周期有点长。。。

所以,我这里把IP白名单给禁用了,不影响接口调用。

在这里插入图片描述
在这里插入图片描述

五、总结

前文我也说过,和扫码付不同,jsapi支付一定是需要入参openId,而且在得到了支付元数据后,需要微信APP方能测试支付。
之前在公司研发环境下,对接浦发沙盒环境,公众号的jsapi支付一直都未能通过,报错jsapi授权目录不对 – “当前页面的URL未注册”。(后来使用小程序测试jsapi支付才跳过此错误,因为小程序不需要像公众号那样进行授权)

但是对接浦发生产环境,公众号的jsapi支付一把就测试通过了,也不会再报上述错误了。

从这也看得出来,浦发的沙盒环境的存在是显得多么多余。

如果你也对接浦发银行支付,希望通过我整理的这一系列文章,能够少踩坑,像考驾照那样一把过!

  • 51
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值