代码拉取完成,页面将自动刷新
<?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"];
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。