支付
汇付宝支付接口还是相当简单的,下载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 . '¬ify_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,
];