PHP 对接ICBC支付的经验分享

本文分享了在PHP项目中对接工商银行支付接口的经验,包括如何重写JAVA DEMO以适应PHP,搭建JAVA接口进行加密,以及整合数据请求支付的详细步骤,解决了没有PHP版本DEMO的困境。
摘要由CSDN通过智能技术生成

概述:

最近在做一个澳门的商城项目,其中需要跟当地的工商银行对接支付,其中的提交支付时,工商银行的加密有自己加密程序,然而他们只提供了JAVA和C 语言的DEMO,并没有PHP的DEMO,甚至连PHP的扩展也说没有,一时让我陷入了困境,不知道怎解决,于是我在百度 谷歌上寻找解决方法。

问题解决方案:

1、java版本的domo用PHP重写

其实这澳门提供的接口的加密方式跟国内大陆的一致,也是用infosec扩展的程序进行加密,大陆的一些开发人员对接接口是直接把JAVA转化成PHP,不过必须的当然是相关的PHP扩展。不过,让我失望的是,当我问工作人员有没有PHP扩展时,他却一问三不知,只有JAVA版本的。而网友分享的PHP拓展,一来不安全,二来只有PHP5.6的版本,而我们服务器已经升级到PHP7了,不知道能否兼容。因此,保守起见,最终放弃了该做法。
(该方法可参考链接:https://blog.csdn.net/weixin_41750160/article/details/83341199)

2、调用java接口进行加密

既然他们提供了java的demo,其实应用起来也不难。但是需要的是搭建javaWeb的环境,并且把demo部署好,我们让php程序加密时候调用一下自己的做的java 加密接口就好了。最终,我选择了该方法。
(该方法可参考链接:https://www.cnblogs.com/weishuan/p/8372063.html)

搭建java接口过程:

1、安装tomcat

该过程不熟悉的朋友,可以按照教程一步步来,值得注意的是,tomcat的端口是8080,其实根据我们的需求,我们只需要自己的PHP程序所在服务器能请求到就行,也就是说localhost能访问或者固定IP就好了,以防给黑客多一个攻击的入口,因此该端口可以不开放或者限制IP访问。
可以参考https://blog.csdn.net/lcyaiym/article/details/76696192

2、部署java项目

其实工商银行对接人一般会提供接口介绍的PPT给你,有加密方法的demo,但是也还没达到开箱即用的程度,因此我分享一下我自己的写的java demo给大家参考。请根据自己的文件路径进行修改,注释部分是调试的,如果返回不成功,可以去掉注释进行分步调试。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.com.infosec.icbc.ReturnValue;



/**
 * Servlet implementation class getSign
 */
@WebServlet(&
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值