首页 » Web前端 » php对接建行龙付出技巧_培植银行支付接口开拓接收通知和验签问题php 无COM组件版

php对接建行龙付出技巧_培植银行支付接口开拓接收通知和验签问题php 无COM组件版

访客 2024-11-15 0

扫一扫用手机浏览

文章目录 [+]

培植银行支付接口开拓吸收关照和验签问题

最近在做建行的B2B支付接口(B2C和B2B差不多)

php对接建行龙付出技巧_培植银行支付接口开拓接收通知和验签问题php 无COM组件版

支付成功后吸收银行关照并验签涌现的问题和解决方案,现在逐一记下:

php对接建行龙付出技巧_培植银行支付接口开拓接收通知和验签问题php 无COM组件版
(图片来自网络侵删)

建行供应的验签DEMO php版的是用COM组件 但是我的做事器是LINUX 的对COM组件不支持(听说网上有方法支持,太烦放弃)。

还有种方法是用PHP 调用JAVA的类 (PHP-Java-Bridge方法 这个这里不说自己百度)

这里详细说下用PHP 的openssl_verify 来验签,各位看官 请随我逐步道来

下面是步骤:

1.openssl_verify 须要一个PEM格式的公钥 从建行下载一个公钥(建行供应的一个公钥是一串字符串并且是16进制的,并且你每次下载的公钥是不同的 是会变的哦 这个把稳)

2.想办法把这串16进制的公钥转成PEM格式于是百度创造没有详细的方案。
现在给出php代码 通过下面的代码即可转成PEM格式

function der2pem($der_data)

{

$pem = chunk_split(base64_encode(hex2bin($der_data)), 64, \"大众\n\"大众);

$pem = \"大众-----BEGIN PUBLIC KEY-----\n\公众 . $pem . \"大众-----END PUBLIC KEY-----\n\公众;

return $pem;

}

调用方法:der2pem('公钥串');

3.验签(php代码如下)

/

验证署名

@param array $val 原字符串

@param type $sign 加密串

/

public function verifySign($val, $sign)

{

$data = '';

foreach ($val as $k => $v)

{

if(\Org\Util\String::isUtf8($v)) //判断编码 UTF8 须要转换下

{

$data.=iconv('utf-8', 'gbk', $v);

}

else

{

$data.=$v;

}

}

$public_key = self::PUBKEY;

$public_key = file_get_contents(dirname(__FILE__ ) . '/' . $public_key);

$pkeyid = openssl_get_publickey($public_key);

$verifyResult = openssl_verify($data, pack(\公众H\"大众 . strlen($sign), $sign), $pkeyid, OPENSSL_ALGO_MD5);

openssl_free_key($pkeyid);

return $verifyResult == 1 ? true : false;

}

4.特殊解释:

a.建行的加密参数是GBK的以是验签的时候的UTF8的编码要转GBK的

b.建行页面关照get参数中文居然没有URL编码 所有在ie下可能是乱码 (用THINKPHP 框架的用I方法会获取不到含中文的参数 以是要用原生的$_GET方法)

c.openssl_verify($data, pack(\"大众H\公众 . strlen($sign), $sign), $pkeyid, OPENSSL_ALGO_MD5);

//建行是采取的rsawithmd5的加密方法所有验签时要用到OPENSSL_ALGO_MD5参数并且把加密串转2进制 pack(\公众H\"大众 . strlen($sign), $sign)

标签:

相关文章

狼群世界里的行为语言,探寻狼的沟通之路

狼,作为自然界中的一种顶级掠食者,以其敏锐的嗅觉、矫健的身姿和独特的沟通方式,成为了众多动物中备受关注的一员。狼群中的行为语言,犹...

Web前端 2024-12-28 阅读0 评论0

独立团,e语言中的精英力量

在信息时代,语言作为一种重要的交流工具,已经渗透到人们生活的方方面面。在众多语言中,e语言凭借其独特的魅力和实用性,逐渐成为了一种...

Web前端 2024-12-28 阅读0 评论0

中兴IT培训,助力个人成长,助力企业转型

随着信息技术的飞速发展,我国各行各业都在积极拥抱数字化、智能化浪潮。在这样的背景下,IT行业人才需求日益旺盛。为了满足企业对高素质...

Web前端 2024-12-28 阅读0 评论0

燕十八CMS,引领企业数字化转型的新引擎

随着互联网技术的飞速发展,企业数字化转型已成为当今时代的主流趋势。在这个过程中,选择一款适合自己的内容管理系统(CMS)至关重要。...

Web前端 2024-12-28 阅读0 评论0