> 接口文档：语言：PHP【点击下载】语言：Java【点击下载】

> API对接信息

> 商户ID：

> 通讯密钥：

> 请求地址：pay.lovehesu.cn

## 发起支付请求

> 请求地址：pay.lovehesu.cn/submit.php

> 请求方式：POST/GET

> 请求数据：pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5

> 参数说明:

> 参数 | 类型 | 描述
> --- | --- | ---
> pid | 整数 | 【必传】判断请求的商户ID
> type | 字符串 | 【必传】alipay:支付宝,wxpay:微信支付,qqpay:QQ支付
> out_trade_no | 长整数 | 【必传】商户订单号，可以是时间戳，不可重复
> notify_url | 字符串 | 【必传】传入则设置该订单的异步通知接口为该参数，不传或传空则使用后台设置的接口
> return_url | 字符串 | 【必传】传入则设置该订单的同步跳转接口为该参数，不传或传空则使用后台设置的接口
> name | 字符串 | 【必传】商品名称
> money | 整数 | 【必传】商品金额
> param | 字符串 | 【可选】自定义参数，不传或传空则
> isHtml | 字符串 | 【可选】默认自动跳转到支付页面，1返回创建结果的json数据
> sign | 字符串 | 【必传】MD5签名，计算方式为 签名算法与支付宝签名算法相同
> sign_type | 字符串 | 【必传】默认为MD5

> 返回数据（示例）：{"code":1,"msg":"成功","data":{"trade_no":"20200716034627356","out_trade_no":"202007161107295495","type":2,"name":"测试商品","money":"0.01","reallyPrice":"0.06","payUrl":"HTTPS:\/\/QR.ALIPAY.COM\/FKX06856G4GM17LDZXHV5D","isAuto":1,"state":0,"timeOut":"3","date":1594871189}}

> 返回数据说明:

> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> code | 整数 | 返回代码（1：成功，-1：调用失败）
> msg | 字符串 | api调用结果说明
> data | 数组 | api调用结果（如果code为-1，则data为null）
> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> trade_no | 字符串 | 云端订单号
> out_trade_no | 字符串 | 商户订单号，可用于查询订单是否支付成功
> type | 整数 | alipay:支付宝,wxpay:微信支付,qqpay:QQ支付
> money | 小数 | 订单金额
> reallyPrice | 小数 | 实际需付金额
> payUrl | 字符串 | 支付二维码内容
> isAuto | 整数 | 1需要手动输入金额 0扫码后自动输入金额
> state | 整数 | 订单状态：-1|订单过期 0|等待支付 1|完成 2|支付完成但通知失败
> timeOut | 整数 | 订单有效时间（分钟）
> date | 长整数 | 订单创建时间时间戳（10位）
> jieko | 网址 | 支付页面地址

## 查询订单信息

> 请求地址：pay.lovehesu.cn/submit.php?act=actfdsa

> 请求方式：POST/GET

> 参数说明:

> 参数 | 参数类型 | 参数说明
> --- | --- | ---
> pid | 整数 | 【必传】商户ID
> key | 字符串 | 【必传】通讯密钥
> out_trade_no | 字符串 | 【必传】商户订单号

> 返回数据（示例）：{"code":1,"msg":"成功","data":{"orderId":"202007221907159879","out_trade_no":"1595419095","type":"wxpay","money":10,"reallyPrice":10,"create_date":1595419095,"close_date":1595419100,"state":1}}

> 返回数据说明:

> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> code | 整数 | 返回代码（1：成功，-1：调用失败）
> msg | 字符串 | api调用结果说明
> data | 数组 | api调用结果（如果code为-1，则data为null）
> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> orderId | 字符串 | 云端订单号
> payId | 字符串 | 商户订单号，可用于查询订单是否支付成功
> type | 整数 | 微信支付为1 支付宝支付为2
> money | 小数 | 订单金额
> reallyPrice | 小数 | 实际需付金额
> create_date | 长整数 | 创建订单时间戳（10位）
> close_date | 长整数 | 完成交易时间戳（10位）
> state | 整数 | 订单状态：-1|订单过期 0|等待支付 1|完成 2|支付完成但通知失败

## 查询监控端状态

> 请求地址：pay.lovehesu.cn/submit.php?act=getState

> 请求方式：POST/GET

> 参数说明:

> 参数 | 参数类型 | 参数说明
> --- | --- | ---
> pid | 整数 | 【必传】商户ID
> key | 字符串 | 【必传】通讯密钥
> sign | 字符串 | 【必传】MD5签名：md5(商户ID+通讯密钥)

> 返回数据（示例）：{"code":1,"msg":"成功","data":{"pzqrcode":"//pay.www.ohbbs.cn/enQrcode?url=pay.www.ohbbs.cn/123456789/1","input":"pay.www.ohbbs.cn/123456789/1","lastpay":"1547394640","lastheart":"1547613873","state":"1"}}

> 返回数据说明:

> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> code | 整数 | 返回代码（1：成功，-1：失败，具体原因查看msg字段）
> msg | 字符串 | 调用结果说明
> data | 字符串 | api调用结果（如果code为-1，则data为null）
> 返回参数 | 参数类型 | 参数说明
> --- | --- | ---
> pzqrcode | 长链接 | 配置二维码链接
> input | 长整数 | 配置数据信息
> lastpay | 长整数 | 最后一次监控到支付的时间戳（10位）
> lastheart | 长整数 | 最后一次监控端向服务器发送心跳的时间戳（10位）
> state | 整数 | 监控端状态 1|在线 0|掉线 -1|还未绑定监控端

## 支付结果通知

> 通知类型：服务器异步通知（notify_url）、页面跳转通知（return_url）
> 当系统收到用户收款后，将会向您后台设定的异步通知地址发送GET请求，通知您的服务端订单完成收款
> 若您使用的是isHtml=默认则在支付完成后会携带参数跳转到您的同步通知接口，若使用isHtml=1则只有异步通知

> 传输参数（示例）：pid=1000&trade_no=20160806151343349021&out_trade_no=20160806151343349&type=wxpay&name=VIP会员&money=1.00&trade_status=TRADE_SUCCESS&sign=202cb962ac59075b964b071&sign_type=MD5

> 传输参数说明:

> 字段名 | 参数 | 类型 | 描述
> --- | --- | --- | ---
> 商户ID | pid | 整数 | 判断请求的商户ID
> 云端订单号 | trade_no | 字符串 | 云端订单号
> 商户订单号 | out_trade_no | 字符串 | 商户系统内部的订单号
> 支付方式 | type | 字符串 | wxpay
> 商品名称 | name | 字符串 | VIP会员
> 商品金额 | money | 整数 | 1.00
> 自定义参数 | param | 字符串 | 测试
> 支付状态 | trade_status | 字符串 | TRADE_SUCCESS
> 签名字符串 | sign | 字符串 | MD5签名，计算方式为 签名算法与支付宝签名算法相同

    <?php
    /* *
     *************************页面功能说明*************************
     * 创建该页面文件时，请留心该页面文件中无任何HTML代码及空格。
     * 该页面不能在本机电脑测试，请到服务器上做测试。请确保外部可以访问该页面。
     * 该页面调试工具请使用写文本函数logResult，该函数已被默认关闭，见alipay_notify_class.php中的函数verifyNotify
     */

    //计算得出通知验证结果
    require_once("./config.php");//核心文件
    $_SERVER['REQUEST_METHOD']=='GET' ? $api = $_GET : $api = $_POST;//判断：GET和POST
    ksort($api); //排序GET和POST参数
    reset($api); //内部指针指向数组中的第一个元素
    $sign = '';//初始化
    foreach ($api AS $key => $val) { //遍历GET和POST参数
        if ($val == '' || $key == 'sign' || $key == 'sign_type' || $key == 'param') continue; //跳过这些不签名
        if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
        $sign .= "$key=$val"; //拼接为url参数形式
    }
    if (md5($sign.$config['key'])==$api['sign']) { //不合法的数据

    	//请在这里加上商户的业务逻辑程序代

    	//——请根据您的业务逻辑来编写程序（以下代码仅作参考）——

    	$out_trade_no = $api['out_trade_no'];//商户订单号

    	$type = $api['type'];//支付方式

    	exit("success");//请不要修改或删除

    } else {

        exit("fail");//验证失败

    }

    ?>