完整建行支付 建行主扫支付:https://blog.csdn.net/weixin_42674576/article/details/122010126?spm=1001.2014.3001.5501 建行被扫支付:https://blog.csdn.net/weixin_42674576/article/details/122380110?spm=1001.2014.3001.5501 被扫支付查单:https://blog.csdn.net/weixin_42674576/article/details/122380365?spm=1001.2014.3001.5501
直接上代码
<?php
namespace service\ccb;
use app\util\HttpUtil;
class RefundService
{
public function refund($input){
$publicParam = config('ccb.public');
$refundNo = $input['refundNo'];
$refundNo= date('YmdHis').rand(10,99);
$data = [
'merchantId' => $publicParam['merchant_id'],
'custId' => '',
'transPwd' => '',
'certPassword' => '',
'txCode' => '5W1004',
'language' => 'CN',
'url' => 'https://merchant.ccb.com',
'certFilePath' => '/home/wwwroot/EBSClient-main/config/MC1496228.pfx',
'configFilePath' => '/home/wwwroot/EBSClient-main/config/config.xml',
'refundNo' => $refundNo,
'refundAmt' => $input['payment'],
'payRecordNo' => $input['order'],
];
$sUrl = "http://192.168.2.198:8080/ccb/pay/refund";
$httpRequest = new HttpUtil();
$jsonStr = json_encode($data);
$config['header'] = ["Content-Type:application/json"];
$res = $httpRequest::post($sUrl,$jsonStr,$config);
return $res;
}
}
商户主管登录商户管理平台(https://merchant.ccb.com), 在服务管理——操作员管理——菜单下新增一个操作员
操作员号: 登录建行商户平台——服务管理——操作员管理,列表里面的客户号;
操作员交易密码: 使用新创建的操作员账号登录商户管理平台,然后自己去设置登录密码和交易密码即可;
文件证书密码: 导出证书的时候填的密码; 新增的操作员首次登陆,需要先下载证书,下载前先安装最新版 “E 路护航”,下载证 书地址(http://www.ccb.com/cn/home/tysh/tysh_index.html),点击下载证书,根 据界面提示下载: 安装好之后 电脑桌面打开 根据提示,输入刚刚我们新创建好的操作员号,手机信息 导出操作员证书,在 IE 浏览器(Internet 选项-内容-证书-个人)中选中刚下载的证 书号,点击“导出”,如下所示: 必须记住此处设置的密码,后续启动外联客户端时需要输入。
踩坑必读:服务器安装的jdk得是1.8版本,其他版本接口加密有问题 ,访问接口会提示:java.lang.NoClassDefFoundError: sun/misc/BASE64Decoder
参考jdk安装:https://blog.csdn.net/weixin_42674576/article/details/122045460
建行外联平台jar包下载链接: https://pan.baidu.com/s/1Aal9isKcO_byOpHeu7reSA?pwd=dn9g 提取码: dn9g
把建行退款需要的外联平台jar包上传到服务器后解压
把下载好的证书放到外联平台项目包的config目录下
以上操作完成后运行jar包: java -jar ccb-cloud-sdk-1.0-SNAPSHOT.jar 访问:http://192.168.2.198:8080/ccb/pay/refund,测试退款,over 如果无法访问到接口地址,尝试操作下 命令:iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
|