文档参考
https://open.icbc.com.cn/icbc/apip/docs_index.html
工银e缴费PHP版本对接?
背景介绍
因为工行e缴费集成了许多缴费项目,包括水电煤气的缴费,还包括党费的缴纳等。这里就是一个党建项目涉及到党费缴纳的问题,所以才接入工银e缴费。
应用场景
这里接入的是工银e缴费的页面,根据规则来生成页面链接即可。
签名规则
工银e缴费采用的是RSA验签的形式来进行签名生成的。由于中心接口是Java语言开发,所以涉及到一些加密跟PHP还是有所区别的。
签名的生成
Windows环境
以生成RSA算法为例:
解压SDK包后,进入到bin目录,双击keygen_rsa.bat文件,生成一对RSA公钥和密钥。
Linux环境
以生成RSA算法为例:
解压SDK包后,进入到bin目录,运行 ./keygen_rsa.sh命令,生成一对RSA公钥和密钥。
$ cd bin
$ ./keygen_rsa.sh
生成了xxxx.pri(私钥)+xxxx.pub(公钥)
工银e缴费文档
直接生成
function gotoSign($data,$privateKey){
$p = openssl_pkey_get_private( $privateKey );
openssl_sign ( $data, $signature, $p, OPENSSL_ALGO_MD5);
openssl_free_key ( $p );
return base64_encode($signature);
}
$a = '';//APP ID第三方应用的ID,由接入方提供
$computeId = 22;//
$areaCode = "0020";
$userId = "第三方应用中的用户ID";
$returnUrl = "URL";//第三方应用回调接口
$pageId = 1;//1是首页 2内页详情
$payitemCode = "";//当pageId为2的情况
$customInfo = "";//
//
$b = "{$computeId},{$areaCode},{$userId},{$returnUrl},{$pageId},{$payitemCode},null";
$t = time() . mt_rand(100,999);
$s = gotoSign($b,file_get_contents(__DIR__ . "/cert/rsa_private_key.pem"));
$b = urlencode($b);
$prefix = "https://gw.open.icbc.com.cn/ui/wapb/payment/V1/entry?";
$url = "A={$a}&B={$b}&T={$t}&S={$s}";
$link = $prefix . $url;
直接访问这个就能进入e缴费页面了。