最近,接了一个业务需求,对接中国农业银行的支付功能,作为中国四大行之一的农业银行,其支付功能相关开发资料缺不多,所以在此记载下支付遇到的问题,以后需要的时候方便查阅。
首先,需要以公司资质在农业银行柜台申请开户,他们会提供给你商户号,以及相关的加密验证文件。之后在联系农行的技术提供demo和支付接口JDK文件。农行支付的一个比较赞的点是,加密解密过程他们的JDK都已经提供了,不用在自己去写加解密的逻辑,省去不少的功夫。
其次是处理他们给的jdk文件,通过demo文件,可以看到农行支付的核心JDK是一个名为ebusclient的文件夹,在这个文件夹中包含一个名为core的文件夹。需要把ebusclient文件夹下所有的内容引用到你的项目中,如图是我引用的部分截图。
如图所示,需要把农行提供的JDK所有文件都添加上命名空间,让后使用use引用,以替换JDK原来的class_exists引用方式。这里需要注意两点:(1)农行JDK的包引用不全,有的需要引用的没有引用,有的不需要引用的反而引用了,在对接支付功能的时候根据报错提示完善use引用。(2)农行JDK包有些变量使用不规范或者名称会有冲突,这个错误最难检查,开发时候要注意检查这类错误。小技巧就是,去除try()catch()方法去调试对接更容易发现错误。
最后,把以上步骤执行好后,就可以顺利的进行农行支付功能的开发,在TrustMerchant.ini文件根据文档提示,配置上商户号,商户号密码,以及相关的证书或文件地址。就可以向农行发起支付申请调用了,支付申请调用相关的参数可以参考demo文件中的代码,适当的修改为自己的订单参数及回调地址。调用成功后用php的方法去接收农行回调的支付结果信息,根据支付结果信息在去处理商城其余的支付逻辑就可以了。
以上就是我在开发农行支付时候的一些心得,简单的记录分享下