2 Star 2 Fork 0

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

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
付款码支付API.php 4.88 KB
一键复制 编辑 原始数据 按行查看 历史
Wangkai 提交于 2024-06-17 17:13 . 2024/4/1 9:50 优化 demo
<?php
/*
付款码支付API
*/
//生成随机单号
$number = mt_rand(13021003,999999999);
echo $number;
echo "<br/><hr>";
//获取时间戳
$currentTime = date("YmdHis");
//meta_option处理;注:is_guarantee=1代表分润单(选填) 商户设置成一般,接口参数才好使,不调分润资金不会结算,需要base64,再urlencode(不需要参与签名)
$String = array(
"is_guarantee" => '1',
);
$jsonString =json_encode($String,JSON_UNESCAPED_UNICODE);
echo 'meta_option的原始值'.$jsonString;
echo "<br/><hr>";
$encodedJsonString = iconv('utf-8', 'gbk', $jsonString);
$Newmeta_option = urlencode(base64_encode($encodedJsonString));
//3des加密
function desdata($encrypted_hex,$deskey)
{
// 进行 3DES 加密
$encrypted = openssl_encrypt($encrypted_hex, 'des-ede3', $deskey, OPENSSL_RAW_DATA);
// 将加密结果转换为十六进制字符串
$newencrypted = bin2hex($encrypted);
return $newencrypted;
}
$deskey = 'DA95D1144CE146CB89130E1A';//3deskey
$desdata = '';//加密前授权码
$Newpayment_info = desdata($desdata,$deskey);//加密后授权码
echo $Newpayment_info;
echo "<br/><hr>";
//定义参数值
$version = '2';//版本号
$agent_id = '1664502';//商户编号
$ref_agent_id = '';//二级商户号(集团商户模式传参),传了必须参与签名放在key后面
$agent_bill_id = $number;//商户系统内部的订单号(要保证唯一)
$agent_bill_time = $currentTime;//提交单据的时间yyyyMMddHHmmss
$provider_type = '1';//1为微信,2为支付宝,3为苹果支付
$auth_code = $Newpayment_info;//授权码,请求时需要3des加密(参与签名,用加密后的参数)
$payment_info = $Newpayment_info;//3des加密的授权码(不参与签名)
$pay_amt = '0.01';//订单总金额
$user_ip = '127.127.12.12';//用户真实的IP 127_127_12_12
$goods_name = '测试';//商品名称,不能为空(不参加签名)
$goods_num = '1';//产品数量(不参加签名)
$remark = '测试';//商户自定义,原样返回,可以为空。(不参加签名)
$goods_note = '测试';//支付说明,(不参加签名)
$expire_time = '10';//订单过期相对时间,单位分钟,最低1分钟,最高4320分钟。
$meta_option = $Newmeta_option;//is_guarantee=1代表分润单(选填) 如果需要分润,此参数必填;不调分润资金不会结算,需要base64,再urlencode(不需要参与签名)
$key = '651886F030134F848F548A12';//密钥
//请求参数中,中文需要GBK格式 URLencode编码
$GBKgoods_name = iconv('UTF-8', 'GBK', $goods_name);
$New_goods_name = urlencode($GBKgoods_name);
$GBKremark = iconv('UTF-8', 'GBK', $remark);
$New_remark = urlencode($GBKremark);
$GBKgoods_note = iconv('UTF-8', 'GBK', $goods_note);
$New_goods_note = urlencode($GBKgoods_note);
// 请求参数(使用 & 符号拼接)注:如果有子商户则子商户字段传值。
if (empty($ref_agent_id)){
$data = "agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&agent_id=$agent_id&auth_code=$auth_code&pay_amt=$pay_amt&provider_type=$provider_type&key=$key";
echo '待加密数据-------------->'.$data;
echo "<br/><hr>";
$sign = md5($data);
echo '加密后数据'.$sign;
echo "<br/><hr>";
$param = "version=$version&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&auth_code=$auth_code&provider_type=$provider_type&payment_info=$payment_info&pay_amt=$pay_amt&user_ip=$user_ip&sign=$sign&goods_name=$New_goods_name&goods_num=$goods_num&remark=$New_remark&goods_note=$New_goods_note";
echo '待请求参数-------------->'.$param;
echo "<br/><hr>";
}else{
$data = "agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&agent_id=$agent_id&auth_code=$auth_code&pay_amt=$pay_amt&provider_type=$provider_type&key=$key&ref_agent_id=$ref_agent_id";
echo '待加密数据-------------->'.$data;
echo "<br/><hr>";
$sign = md5($data);
echo '加密后数据'.$sign;
echo "<br/><hr>";
$param = "version=$version&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&auth_code=$auth_code&provider_type=$provider_type&payment_info=$payment_info&pay_amt=$pay_amt&user_ip=$user_ip&sign=$sign&goods_name=$New_goods_name&goods_num=$goods_num&remark=$New_remark&goods_note=$New_goods_note&ref_agent_id=$ref_agent_id";
echo '待请求参数-------------->'.$param;
echo "<br/><hr>";
}
//请求地址
$url = 'https://pay.heepay.com/API/Swipe/SubmitService.aspx';
// 构建请求上下文
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $param
)
);
$context = stream_context_create($options);
// 发送 POST 请求
$response = file_get_contents($url, false, $context);
if ($response === false) {
echo 'POST request failed';
} else {
$responsed = iconv('GBK', 'UTF-8', $response);
echo $responsed;
}
?>
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