【汇付宝支付相关问题记录】

本文档详细介绍了如何使用汇付宝支付接口进行支付操作,包括签名生成步骤和参数传递注意事项。同时,针对退款过程中的常见问题进行了说明,如退款时需使用特定退款key,以及异步通知返回格式的处理。提醒开发者注意文档的准确性,避免因参数错误导致的签名验证失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汇付宝支付相关问题记录

支付

汇付宝支付接口还是相当简单的,下载demo,编写接口调用即可。

 /*************创建签名***************/
        $sign_str = '';
        $sign_str  = $sign_str . 'version=' . $version;
        $sign_str  = $sign_str . '&agent_id=' . $agent_id;
        $sign_str  = $sign_str . '&agent_bill_id=' . $agent_bill_id;
        $sign_str  = $sign_str . '&agent_bill_time=' . $agent_bill_time;
        $sign_str  = $sign_str . '&pay_type=' . $pay_type;
        $sign_str  = $sign_str . '&pay_amt=' . $pay_amt;
        $sign_str  = $sign_str .  '&notify_url=' . $notify_url;
        $sign_str  = $sign_str . '&return_url=' . $return_url;
        $sign_str  = $sign_str . '&user_ip=' . $user_ip;
        $sign_str  = $sign_str . '&key=' . $sign_key;

        $sign = md5($sign_str); //签名值

传参

 $arr  = [
                'version'         => $version,
                'agent_id'        => $agent_id,
                'agent_bill_id'   => $agent_bill_id,
                'agent_bill_time' => $agent_bill_time,
                'pay_type'        => $pay_type,
                'pay_code'        => $pay_code,
                'pay_amt'         =>  $pay_amt,
                'notify_url'      => $notify_url,
                'return_url'      => $return_url,
                'user_ip'         => $user_ip,
                'goods_name'      => ($goods_name),
                'goods_num'       => ($goods_num),
                'goods_note'      => ($goods_note),
                'meta_option'     => $meta_option,//
                'remark'          => $remark,
                'is_phone'        => $is_phone,
                'is_frame'        => $is_frame,
                'sign'            => $sign,
        ];

注意对比文档传对参数,汇付宝的接口文档太特么坑,不标注清除。

退款

垃圾文档不写清楚退款的时候要用他的退款key,搞了半天一直提示“E101sign验证错误”,配置一下退款key就行。异步通知返回的时候不返回 ret_code,看他的返回实例,协议参数里的ret_code没有返回,接受参数的时候注意一下。
同步通知的时候返回xml格式,需要转换为数组

$ret = iconv("GB2312","UTF-8//IGNORE",urldecode($ret));
        helper('xml');
        $arr = json_decode(json_encode(simplexml_load_string($ret, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

传参数,agent_bill_id和refund_details为互斥参数,必须传其中一个参数。默认使用agent_bill_id

$arr = [
            'version'        => $version,
            'agent_id'       => intval($agent_id),
            'agent_bill_id'  => $agent_bill_id,
            'notify_url'     => $notify_url,
            'sign'           => $sign,
        ];
### 关于汇付天下支付 PHP 集成 对于汇付天下的PHP集成,通常涉及到API接口调用以及签名验证等安全措施。为了实现这一过程,开发者需遵循官方文档中的指导来完成相应的开发工作。 #### 准备工作 在开始之前,确保已经获取到商户ID、密钥以及其他必要的参数信息[^1]。这些信息用于构建请求数据包并进行加密处理,从而保障交易的安全性和可靠性。 #### 接口调用流程 发起一笔支付请求主要包括以下几个方面: - **创建订单**:向服务器发送带有商品详情的数据包以生成唯一订单号。 - **组装请求体**:按照规定格式组织好所有必需字段,并附加时间戳和随机字符串作为防重放机制的一部分。 - **计算签名**:利用MD5或其他指定算法对接口所需参数按字典序排列后拼接而成的字符串加上私钥做哈希运算得出最终签名值。 - **提交至网关**:将上述准备好的JSON或者XML形式的内容POST给对应的URL地址。 ```php <?php // 示例代码片段展示如何构造一个基本的HTTP POST请求 $data = [ 'merchantId' => MERCHANT_ID, // 商户编号 'orderId' => ORDER_ID, // 订单号 'amount' => AMOUNT, // 金额 'timestamp' => time(), // 时间戳 'nonceStr' => uniqid('', true), // 随机数 ]; ksort($data); // 对数组按键名升序排序 $signString = http_build_query($data) . PRIVATE_KEY; $data['sign'] = strtoupper(md5($signString)); $options = [ 'http' => [ 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data), ], ]; $context = stream_context_create($options); $result = file_get_contents(GATEWAY_URL, false, $context); echo json_decode($result)->message; // 输出响应消息 ?> ``` 此段脚本演示了怎样设置一些基础属性并通过`file_get_contents()`函数执行网络通信操作[^2]。 #### 安全注意事项 在整个过程中务必重视安全性考量,比如采用HTTPS协议传输敏感资料;严格校验回调通知里的签名校验位防止伪造篡改等问题的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值