-
协议规则
传输方式:HTTPS  数据格式:JSON  签名算法:MD5  字符编码:UTF-8
[API]查询软件在线状态
API地址:https://hlcode.huluwl.com/api.html?act=online_status&pid={商户ID}&key={商户密钥}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型actStringonline_status此API固定值
商户IDpidInt1001
商户密钥keyString89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i

返回结果示例:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
支付宝alipayInt11为在线状态,0为掉线状态
财付通qqpayInt01为在线状态,0为掉线状态
微信wxpayInt11为在线状态,0为掉线状态
[API]查询单个订单
API地址:https://hlcode.huluwl.com/api.html?act=order&pid={商户ID}&key={商户密钥}&type={支付方式}&out_trade_no={商户订单号}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型actStringorder此API固定值
商户IDpidInt1001
商户密钥keyString89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
支付方式typeStringwxpay
商户订单号out_trade_noString20160806151343349

返回结果示例:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询订单号成功!
订单号trade_noString2016080622555342651系统内部订单号
商户订单号out_trade_noString20160806151343349商户系统内部的订单号
支付方式typeStringalipayalipay:支付宝,qqpay:QQ钱包,wxpay:微信支付
商户IDpidInt1001发起支付的商户ID
创建订单时间addtimeString2016-08-06 22:50:52
订单失效时间endtimeString2016-08-06 22:55:52
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态statusInt01为支付成功,0为未支付
[API]二维码下单接口

此接口可用于服务器后端发起支付请求,会返回支付二维码链接

API地址:https://hlcode.huluwl.com/qrcode?pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&name={商品名称}&money={金额}&sign={签名字符串}&sign_type=MD5

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1001
支付方式typeStringalipayalipay:支付宝,qqpay:QQ钱包,wxpay:微信支付
商户订单号out_trade_noString20160806151343349
异步通知地址notify_urlStringhttps://hlcode.huluwl.com/notify_url.php服务器异步通知地址
商品名称nameStringVIP会员
商品金额moneyString1.00
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5

返回结果示例:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString提交成功!
支付金额moneyString1.00
商户订单号out_trade_noString20160806151343349
创建订单时间addtimeString2016-08-06 22:50:52
订单失效时间endtimeString2016-08-06 22:55:52
二维码链接qrurlStringhttps://hlcode.huluwl.com/qrimg.php?text=xxx
发起支付请求
API地址:https://hlcode.huluwl.com/submit
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1001
支付方式typeStringalipayalipay:支付宝,qqpay:QQ钱包,wxpay:微信支付
商户订单号out_trade_noString20160806151343349
异步通知地址notify_urlStringhttps://hlcode.huluwl.com/notify_url.php服务器异步通知地址
跳转通知地址return_urlStringhttps://hlcode.huluwl.com/return_url.php页面跳转通知地址
商品名称nameStringVIP会员
商品金额moneyString1.00
网站名称sitenameString彩虹云任务
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5
$Hlcode_Id = "1000";//您的商户id
$Hlcode_Key = "AMEQ6D96SADsE545413419MuS"; //您的商户KEY
//构造要请求的参数数组,无需改动
$parameter = array(
    "pid" => $Hlcode_Id,//你的商户ID
    "type" => 'alipay',//支付方式alipay/wxpay
    "notify_url" => '',//异步通知地址
    "return_url" => '',//页面返回地址
    "out_trade_no" => '20200530203427207',//订单号
    "name" => 'VIP会员',//商品名称
    "money" => 1.00,//支付金额
    "sitename" => 'HLCodePay',//网站名称
);
ksort($parameter); //重新排序$parameter数组
reset($parameter); //内部指针指向数组中的第一个元素
$sign = ''; //初始化需要签名的字符为空
$urls = ''; //初始化URL参数为空
foreach ($parameter AS $key => $val) { //遍历需要传递的参数
    if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
    if ($sign != '') {
        $sign .= "&";
        $urls .= "&";
    }
    $sign .= "$key=$val"; //拼接为url参数形式
    $urls .= "$key=" . urlencode($val); //拼接为url参数形式并URL编码参数值
}
$query = $urls . '&sign=' . md5($sign .$Hlcode_Key); //创建订单所需的参数
$url = "https://hlcode.huluwl.com/submit?{$query}"; //支付页面
header("Location:{$url}"); //跳转到支付页面     
    
支付结果通知
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)

请求方式:GET

回调说明:支付成功服务器异步通知页面就会收到HLCodePay发来的处理结果通知,程序执行完后必须打印输出success,如果商户反馈的字符不是success这7个字符,HLCodePay服务器会不断重发通知,直到超过通知次数10次(通知的间隔:5分钟左右)注意做好通知去重逻辑,你也可以在后台手动补单。

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1001
订单号trade_noString20160806151343349021系统内部订单号
商户订单号out_trade_noString20160806151343349商户系统内部的订单号
支付方式typeStringalipayalipay:支付宝,qqpay:QQ钱包,wxpay:微信支付
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态trade_statusStringTRADE_SUCCESS
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5
if($_POST){
    $data=$_POST;
}else{
    $data=$_GET;
}
ksort($data); //排序post参数
reset($data); //内部指针指向数组中的第一个元素
$hlcode_key = "这里改成您的KEY"; //这是您的密钥
$sign = '';//初始化
foreach ($data AS $key => $val) { //遍历POST参数
    if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
    if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
    $sign .= "$key=$val"; //拼接为url参数形式
}
if (md5($sign.$hlcode_key) != $data['sign']) { //不合法的数据
    exit('fail');  //验证失败
} else { //合法的数据
    //业务处理
    $money = (float)$data['money']; //付款金额
    $trade_no = $data['trade_no']; //订单号
    $out_trade_no = $data['out_trade_no']; //商户订单号
    exit('success'); //返回成功
}
    
SDK

SDK下载PHP版

SDK.zip

SDK版本:V1.1