首页 » PHP教程 » 建行接口php技巧_培植银行支付接口开拓接收通知和验签问题php 无COM组件版

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

访客 2024-11-22 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)

标签:

相关文章

代码中的晚安,温暖你我心灵

在这个繁华的都市,夜幕降临,灯火阑珊。人们疲惫了一天,渴望一份宁静与安逸。在这个时刻,我们不禁会想起一句温馨的话语:“晚安,愿你有...

PHP教程 2024-12-25 阅读0 评论0

代码之韵,探寻编程主题曲中的智慧与激情

在信息技术飞速发展的今天,编程已成为一种不可或缺的技能。而那些富有创意的编程主题曲,更是激发了无数程序员对编程的热爱与追求。这些主...

PHP教程 2024-12-25 阅读0 评论0

倒序编程,揭开未来编程新篇章的神秘面纱

在当今这个日新月异的时代,科技发展日新月异,编程语言和工具层出不穷。在这繁荣的背后,一种名为“倒序编程”的编程范式正悄然兴起,有望...

PHP教程 2024-12-25 阅读0 评论0

健身课,塑造健康体魄,迈向美好生活

随着生活节奏的加快,人们的健康问题日益凸显。在这个时代,健身已成为越来越多人的追求。而健身课,作为提升身体素质、塑造健康体魄的重要...

PHP教程 2024-12-25 阅读0 评论0