2 Star 2 Fork 0

汇元技术支持/汇元科技支付类PHPdemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
凭证下载API.php 5.48 KB
一键复制 编辑 原始数据 按行查看 历史
Wangkai 提交于 2024-03-06 16:48 . 2024/3/6 16:48优化
<?php
/*
* 凭证下载API
* 密钥生成:密钥长度RSA2(2048)、密钥格式PKCS8;加密方法:RSA
* 密钥可以在汇付宝后台生成,商户公钥保存在常规业务密钥里(可以参考新快捷密钥生成操作指南)
* 凭证类型(1=分账,2=分账退回,3=银行卡充值,4=动账储值,5=线下汇款,6=提现,7=批付,8=批付批量获取)
*
*/
//签名串排序
function ASCIIAZ($arrayData)
{
ksort($arrayData);
// 将数组转换为 URL 编码的字符串
$data1 = http_build_query($arrayData);
$data2 = urldecode($data1);
return $data2;
}
/*
删除json指定键的值双引号
*/
function DeleteValue($jsonString)
{
// 将 JSON 字符串解码为关联数组
$arrayData = json_decode($jsonString, true);
// 处理 biz_content 键的值,去掉外层双引号
if (isset($arrayData['biz_content'])) {
$arrayData['biz_content'] = json_decode($arrayData['biz_content'], true);
}
// 打印结果
$arrayData1 = json_encode($arrayData);
return $arrayData1;
}
//设置签名私钥
$PRIVATEkey =
"-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5XkR5gTRgWLAUeyCvnQZA4pdZ6ayV8R+//KzQjDW18SEaFb/g+9b4jX6tyWniEXWYhXrHXyTbI6ZvykRpD2HfMo1Bvb1OKIVZYKG9chJmcekGKufbmQ4Pxuoy72I8Qhi8zmO29pROE7nM7EHgh1aYtcpJIBmq9Zuc8BddIk6t4Cxo6NMtHSbgzXCcqw67zCRDyf8mLZIc+o5ObzNZqbqAwD7bRUctCbYlUumXNJYBzbQ3aNQxZow1GDw23zbqqPgRVI3iXyNX5FWipTMUgGDpo6wDF3hOT1Z0xRdtBfEkdT6UyruRKGbbWiDd9roa75W4mlmvM0y7g7ZhuVkoaJn7AgMBAAECggEAFGeKBg3w5AIfL8H18R7Jx26p1l3gf4jRQ+Leav5kEyj9yc9HFc7i9O0uWpbnLtlZJnba8wNIHU8pTPjo2t+0mEsKPYhTRD01oIcAhsf9uoUjb2hdqVCJubbdpMmw+I0WCAJ3+3XdEVMeiq4e+kYrhBfOson0CVuLy5SqHbhfDMiF6SzRiTFMAELos7SwfjXZ0VAclGP7do/XWyUp2b2l9Z0nnaeKU2ecNBZlDXKcpsZ2Omz8HIXyJpeKooN63DSkjobPm6+/saNAL5118ZC8SxnvbZ61gsEk8/feHoYr58g6zgllLEb5uR7DJjmxrCF/bMqGv2OQ35s0cnPwUds/cQKBgQD7JACTjg2D/mvBSeZxsmOiLqJIoxeUOlH7OliPe6uF9XAJat2LJCpN5UPbUqgBC280SvzhJG103WeZIBNYiRqxC0qQUw1qUkpavJ1TkYw7lO5m/9b5TebQ05qTiBWd1DmJYbXfPQRjwjAG2/MkGIvdnZ43NhqnQeNXUHtr7T1RrQKBgQC89HgDymVmgHo1Ffc1z1cMOdnJzIXr6O3Gtj5Zhra+98qqKT/HAIAIhKsn9zNLUGT+XbkB1J5K68A1JlXc1LEZIiq0TEXAEerTH3XlplhdZ8qvRnVm48hqwyIQ+ZTllzOYloH5cHQkBsPkCIN7rz0N+P2SC7cw5Uo1Rr3vS+8fRwKBgC8lSBJrNXBU/8eOZvtrILceiAqYy2FhPWirQFrXPZDtTXYHIMXxKRvscTuoHa/shJjNhwGBBCdPNRaS5e7V9jPMSdgkLz2JaznzdJlulmPNBqBBYQr2K+GCB9+wSVaSs6ZtuGXLH5rWpotzGQbqsL8OytfUiVZi0RngGvtc0wkVAoGADb5+iFANhiIsQXZCkBBv1XzTwaD10M4VlZGmAV8SJdviSvRLJk98AKKdzH9npL/JSNNKZL6xcOOrDHKoZjK2WwyoLIsru6fR+99a9QRfgxPMo2ktmvlQl6tv6+orkXOpFh1EgP9UA1bWotyXq8R4XW7SCvB9N7pF5pApuqE8WHsCgYEAvKir/VM1K9Qhk78EshIXygL9F8LQxhpRkquZ3w/81fchn+/xLJv6HHpGLaGywAPM/kONcDkvJFLmHJDQ2cwLgrX2x0bUFRxNjQ0RLT7zjIuJq/WxECLVh6xDI8yGqT6OU0wfMEzinzm5eLaIwqRQLZoI0Qxvvn0nBjSh6/+iJD0=
-----END PRIVATE KEY-----";
//生成时间戳
$t=time();
$currentTime=date('Y-m-d H:i:s', $t);
//业务参数
$Oldbiz_content = array(
"receipt_type" => '1',//凭证类型(1=分账,2=分账退回,3=银行卡充值,4=动账储值,5=线下汇款,6=提现,7=批付,8=批付批量获取)
"trade_no" => 'H2311131893766AW',//汇元单号
//"sub_merch_id" => "",//二级商户号(集团账号模式必传)
);
$Newbiz_content = json_encode($Oldbiz_content,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);//组装业务参数并转为JSON格式
echo $Newbiz_content .PHP_EOL;
//公共请求参数
$method = 'heepay.com.receipt.get';//具体业务接口名称
$version = '1.0';//版本号:固定值 1.0
$merch_id = '1664502';//商户编号,(汇付宝商户内码:七位整数数字)
$biz_content = $Newbiz_content;// Json参数集合,长度不限,具体见开发文档业务参数。
$timestamp = $currentTime;// 时间戳格式(注意有空格)yyyy-MM-dd HH:mm:ss
//生成签名串
$arrayData = array(
'version' => $version,
'biz_content' => $biz_content,
'method' => $method,
'merch_id' => $merch_id,
'timestamp' => $timestamp,
);
$signatureContent = ASCIIAZ($arrayData);//组装参数
echo "签名串:" .$signatureContent .PHP_EOL;
//对签名串进行rsa签名
$private_key = openssl_pkey_get_private($PRIVATEkey);
openssl_sign($signatureContent, $signature, $private_key, OPENSSL_ALGO_SHA1);
$sign = base64_encode($signature);
//输出签名后数据
echo "签名结果:" .$sign . PHP_EOL;
// 构建请求的JSON数据
$request_data = array(
'version' => $version,
'biz_content' => $biz_content,
'merch_id' => $merch_id,
'method' => $method,
'timestamp' => $timestamp,
'sign' => $sign,
);
// 将数组转换为JSON字符串
$jsonString = json_encode($request_data,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
$jsonString1 = DeleteValue($jsonString);//删除json指定键的值双引号
//输出请求数据
echo "请求json:".$jsonString1 .PHP_EOL;
$Posturl = "https://pay.heepay.com/API/HywIndex.aspx";
// 创建Header选项
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => $jsonString1,
),
);
// 创建上下文选项
$context = stream_context_create($options);
// 发送POST请求并获取响应
$response = file_get_contents($Posturl, false, $context);
if ($response === false) {
// 处理请求失败的情况
echo "Failed to send POST request.";
} else {
// 处理请求成功的响应
echo $response .PHP_EOL;
}
//解析响应数据
$Old_response = json_decode($response, true);
$New_response = $Old_response["data"];
$file_path = json_decode($New_response, true);
echo "下载凭证地址:" .$file_path["file_path"];
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/huiyuan-technical-support/HyPayPhpDemo.git
git@gitee.com:huiyuan-technical-support/HyPayPhpDemo.git
huiyuan-technical-support
HyPayPhpDemo
汇元科技支付类PHPdemo
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385