接口说明

本支付【葫芦码支付】Api接口与易支付接口兼容。如已集成易支付接口可查看教程接入:

https://www.huluwl.cn/help.php?id=13

协议规则

传输方式:HTTPS

数据格式:JSON

签名算法:MD5

字符编码:UTF-8

[API]查询商户信息与结算规则

URL地址:https://www.huluwl.cn/api.php?act=query&pid={商户ID}&key={商户密钥}

请求参数说明:

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

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
商户IDpidInt1001所创建的商户ID
商户密钥keyString(32)89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i所创建的商户密钥
商户类型typeInt1此值暂无用
商户状态activeInt11为正常,0为封禁
商户余额moneyString0.00商户所拥有的余额

[API]查询单个订单

URL地址:https://www.huluwl.cn/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}

请求参数说明:

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

返回结果:

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

[API]批量查询订单

URL地址:https://www.huluwl.cn/api.php?act=orders&pid={商户ID}&key={商户密钥}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型actStringorders此API固定值
商户IDpidInt1001
商户密钥keyString89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
查询订单数量limitInt20返回的订单数量,最大50
页码pageInt1当前查询的页码

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询结算记录成功!
订单列表dataArray订单列表

[API]二维码下单接口

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

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

请求参数说明:

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

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString下单成功!
订单号trade_noString20160806151343349
支付金额moneyString1.00
商户订单号out_trade_noString20160806151343349
失效时间endtimeString2019-08-10 23:00:00注意失效时间,失效勿支付
二维码链接code_urlStringhttp://huluwl.cn/xxxxxxxxx.png

发起支付请求

URL地址:https://www.huluwl.cn/submit.php

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://www.huluwl.cn/notify_url.php服务器异步通知地址
跳转通知地址return_urlStringhttps://www.huluwl.cn/return_url.php页面跳转通知地址
商品名称nameStringVIP会员
商品金额moneyString1.00
网站名称sitenameString彩虹云任务
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5

PHP发起支付请求示例

$hlcode_id="1000";//这里改成葫芦码支付ID
$hlcode_key="AMEQ6D96SADsE545413419MuS"; //这是您的KEY

//构造要请求的参数数组,无需改动
$parameter = array(
    "pid" => $hlcode_id,//你的商户ID
    "type" => 'alipay',//alipay支付宝支付、wxpay微信支付、qqpayQQ支付
    "notify_url"	=> '',//异步通知地址
    "return_url"	=> '',//页面返回地址
    "out_trade_no"	=> '20200530203427207',//订单号
    "name"	=> 'VIP会员',//商品名称
    "money"	=> 1.00,//支付金额
    "sitename"	=> '葫芦码支付',//网站名称
);

ksort($parameter); //重新排序$parameter数组
reset($parameter); //内部指针指向数组中的第一个元素

$sign = ''; //初始化需要签名的字符为空
$urls = ''; //初始化URL参数为空

foreach ($parameter AS $key => $val) { //遍历需要传递的参数
    if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
    if ($sign != '') { //后面追加&拼接URL
        $sign .= "&";
        $urls .= "&";
    }
    $sign .= "$key=$val"; //拼接为url参数形式
    $urls .= "$key=" . urlencode($val); //拼接为url参数形式并URL编码参数值

}
$query = $urls . '&sign=' . md5($sign .$hlcode_key); //创建订单所需的参数
$url = "https://www.huluwl.cn/submit.php?{$query}"; //支付页面

header("Location:{$url}"); //跳转到支付页面
                

支付结果通知

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

通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)

请求方式:GET

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1001
订单号trade_noString20160806151343349021系统内部订单号
商户订单号out_trade_noString20160806151343349商户系统内部的订单号
支付方式typeStringalipayalipay:支付宝,qqpay:QQ钱包,wxpay:微信支付
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态trade_statusStringTRADE_SUCCESS
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5

PHP支付结果验证示例

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下载PHP版

SDK.zip
SDK版本:V1.0