php 对接建行支付接口httpsyunbusinessccbcomclp_ordertxCtrlserver php代码完整实现
以下是一个完整实现建行支付接口的PHP代码示例:
<?php
// 构造请求参数
$params = array(
'MERCHANTID' => '商户号',
'POSID' => '商户柜台号',
'BRANCHID' => '分行代码',
'ORDERID' => '订单号',
'PAYMENT' => '支付金额',
'CURCODE' => '币种',
'TXCODE' => '交易码',
'REMARK1' => '备注1',
'REMARK2' => '备注2',
'TYPE' => '支付类型',
'PUB' => '公钥',
'GATEWAY' => '支付网关',
);
// 将参数进行排序
ksort($params);
// 拼接待签名字符串
$signString = '';
foreach ($params as $key => $value) {
$signString .= $key . '=' . $value . '&';
}
// 删除末尾的&
$signString = rtrim($signString, '&');
// 使用SHA-256算法进行签名
$signature = hash('sha256', $signString);
// 将签名添加到请求参数中
$params['MAC'] = $signature;
// 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://yunbusiness.ccb.com/clp_order/txCtrl/server.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// 处理响应结果
if ($response === false) {
echo '请求失败';
} else {
// 解析响应结果
parse_str($response, $result);
// 验证签名
$signString = '';
foreach ($result as $key => $value) {
if ($key != 'MAC') {
$signString .= $key . '=' . $value . '&';
}
}
// 删除末尾的&
$signString = rtrim($signString, '&');
$signature = hash('sha256', $signString);
if ($result['MAC'] == $signature) {
// 签名验证通过
echo '支付成功';
} else {
// 签名验证失败
echo '支付失败';
}
}
请注意,上述代码中的参数需要根据实际情况进行填写。另外,建行支付接口可能还有其他特定要求,请根据建行提供的接口文档进行相应的调整
原文地址: http://www.cveoy.top/t/topic/iZCF 著作权归作者所有。请勿转载和采集!