协议规则

URL地址:文档仅供参考,实际以商户后台接口地址为准

请求数据格式:application/x-www-form-urlencoded

返回数据格式:JSON

签名算法:MD5

字符编码:UTF-8

页面跳转支付

此接口可用于用户前台直接发起支付,使用form表单跳转或拼接成url跳转。

URL地址:https://a1026a.lemzf.com/submit.php

请求方式:POST 或 GET(推荐POST,不容易被劫持或屏蔽)

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
支付方式type否Stringalipay支付方式列表
商户订单号out_trade_no是String20230806151343349
异步通知地址notify_url是Stringhttp://www.pay.com/notify_url.php服务器异步通知地址
退款通知地址refund_url否Stringhttps://merchant.example/refund_notify可选,留空不通知。
传入时参与签名。
退款通知说明
跳转通知地址return_url是Stringhttp://www.pay.com/return_url.php页面跳转通知地址
商品名称name是StringVIP会员如超过127个字节会自动截取
商品金额money是String1.00单位:元,最大2位小数
业务扩展参数param否String没有请留空支付后原样返回
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

支付方式(type)不传会跳转到收银台支付

API接口支付

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

URL地址:https://a1026a.lemzf.com/mapi.php

请求方式:POST

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
支付方式type是Stringalipay支付方式列表
如需收银台,传: cashier
商户订单号out_trade_no是String20230806151343349
异步通知地址notify_url是Stringhttp://www.pay.com/notify_url.php服务器异步通知地址
退款通知地址refund_url否Stringhttps://merchant.example/refund_notify可选,留空不通知。
传入时参与签名。
退款通知说明
跳转通知地址return_url否Stringhttp://www.pay.com/return_url.php页面跳转通知地址
商品名称name是StringVIP会员如超过127个字节会自动截取
商品金额money是String1.00单位:元,最大2位小数
用户IP地址clientip是String192.168.1.100用户发起支付的IP地址
设备类型device否Stringpc
建议按实际传入,适配最佳体验
根据当前用户浏览器的UA判断,
传入用户所使用的浏览器
或设备类型,默认为pc
设备类型列表
获取原始链接rawurl否Int1默认0,返回兼容性好的收款链接payurl
传1时,将返回二维码链接qrcode
业务扩展参数param否String没有请留空支付后原样返回
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

返回结果(json):

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString失败时返回原因
订单号trade_noString20230806151343349支付订单号
支付跳转urlpayurlStringhttps://a1026a.lemzf.com/pay/wxpay/202010903/如果返回该字段,则直接跳转到该url支付
二维码链接qrcodeStringweixin://wxpay/bizpayurl?pr=04IPMKM如果返回该字段,则根据该url生成二维码
小程序跳转urlurlschemeStringweixin://dl/business/?ticket=xxx如果返回该字段,则使用js跳转该url,可发起微信小程序支付

注:payurl、qrcode、urlscheme 不一定都返回,建议都适配

支付结果通知

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

请求方式:GET

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
易支付订单号trade_no是String20230806151343349021柠檬支付订单号
商户订单号out_trade_no是String20230806151343349商户系统内部的订单号
支付方式type是Stringalipay支付方式列表
商品名称name是StringVIP会员
商品金额money是String1.00
支付状态trade_status是StringTRADE_SUCCESS只有TRADE_SUCCESS是成功
业务扩展参数param否String
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

收到异步通知后,需返回success以表示服务器接收到了订单通知

退款结果通知

submit.php、mapi.php 均支持可选参数 refund_url。下单时传入,留空不通知。

平台完成退款登记后立即加入异步队列发送通知,定时任务每分钟补发到期任务。适用于 API、自助、后台和机器人退款。

请求方式:GET。字符编码:UTF-8。

refund_url 使用公网 HTTP/HTTPS 地址,最长2048字节。固定查询参数用于路由,验签时取下表中的通知字段。

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001原订单所属商户
易支付订单号trade_no是String20230806151343349021原支付订单号
商户订单号out_trade_no是String20230806151343349下单时传入的商户订单号
平台退款单号refund_no是StringRF202610250001同一次退款的唯一标识,重试和补发保持不变
支付方式type是Stringalipay原订单实际支付方式
商品名称name是StringVIP会员与支付通知的商品名称口径一致
原订单金额money是String100.00原商品金额,单位元,固定两位小数
本次退款金额refund_money是String30.00本次退款金额,单位元,固定两位小数
退款状态refund_status是StringREFUND_SUCCESS平台已登记退款
退款原因refund_reason是String用户取消订单本次退款保存的原因,UTF-8 纯文本;未填写时回传“未提供退款原因”
业务扩展参数param否String原订单非空扩展参数原样返回
签名字符串sign是String[SIGN]32位小写MD5;示例为占位符。签名算法
签名类型sign_type是StringMD5与支付通知一致

签名算法与支付通知一致。退款原因、金额、单号和状态均参与签名;验签时保留原始文本和金额格式。

验签并核对订单后,按 refund_no 去重处理。处理成功返回 HTTP 200 和纯文本 success;重复通知也返回 success。

通知失败后最多重试9次,间隔为1分钟、3分钟、10分钟、30分钟、1小时、2小时、4小时、8小时、24小时。自动重试期为48小时;订单列表提供“补发退款通知”。

money 为原订单金额,refund_money 为本次退款金额。重试和补发沿用原退款单号、金额及原因。支付通知和退款通知可能乱序到达,请保留已退款状态。

MD5签名算法

1、按参数名ASCII码从小到大排序。排除 sign、sign_type 和空值;字符串 "0" 参与签名。

2、将排序后的参数拼接成URL键值对的格式,例如 a=b&c=d&e=f,参数值不要进行url编码。

3、再将拼接好的字符串与商户密钥KEY进行MD5加密得出sign签名参数,sign = md5 ( a=b&c=d&e=f + KEY ) (+ 表示字符串拼接),MD5结果为小写。

4、具体签名与发起支付的示例代码可下载SDK查看。

支付方式列表

调用值描述
alipay支付宝
wxpay微信支付
usdtUSDT

设备类型列表

调用值描述
pc电脑浏览器
mobile手机浏览器
qq手机QQ内浏览器
wechat微信内浏览器
alipay支付宝客户端

商户 API 请求时间

以下商户查询、结算记录及退款API均必须携带 time,格式为10位Unix秒时间戳。

有效期:与服务器时间相差不超过3600秒(前后1小时,含边界)。time格式错误或超出范围返回 code=-4。

签名:先生成当前time,再与其他非空参数一起计算sign;更换time后必须重新签名。退款的time放在POST表单中,act仍通过URL传入,签名字段沿用原有POST参数。

时区:时间展示以新加坡 Asia/Singapore(UTC+8) 为准。Unix时间戳本身不分时区,请勿额外加8小时。例:1792886400 对应新加坡时间 2026-10-25 08:00:00。

生成方式:PHP:$time = time();
JavaScript:Math.floor(Date.now() / 1000)

[API]查询商户信息

URL地址:https://a1026a.lemzf.com/api.php?act=query&pid={商户ID}&time={10位Unix秒时间戳}&sign={32位签名字符串}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringquery此API固定值
商户IDpid是Int1001
请求时间time是Int179288640010位Unix秒时间戳,参与签名。
时间与签名规则
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type否StringMD5默认为MD5

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
商户IDpidInt1001商户ID
商户密钥keyString(32)89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
商户状态activeInt11为正常,0为封禁
商户余额moneyString0.00商户所拥有的余额
结算方式typeInt11:支付宝,2:微信,3:QQ,4:银行卡
结算地址accountString[email protected]结算的支付宝账号
结算姓名usernameString张三结算的支付宝姓名
订单总数ordersInt30订单总数统计
今日订单order_todayInt15今日订单数量
昨日订单order_lastdayInt15昨日订单数量
今日流水amount_todayFloat3510.12今日流水(扣除手续费后)
昨日流水amount_yesterdayFloat4233.42昨日流水(扣除手续费后)

[API]查询结算记录

URL地址:https://a1026a.lemzf.com/api.php?act=settle&pid={商户ID}&time={10位Unix秒时间戳}&sign={32位签名字符串}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringsettle此API固定值
商户IDpid是Int1001
请求时间time是Int179288640010位Unix秒时间戳,参与签名。
时间与签名规则
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type否StringMD5默认为MD5

返回结果:

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

[API]查询单个订单

URL地址:https://a1026a.lemzf.com/api.php?act=order&pid={商户ID}&out_trade_no={商户订单号}&time={10位Unix秒时间戳}&sign={32位签名字符串}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringorder此API固定值
商户IDpid是Int1001
系统订单号trade_no选择String20230806151343312
商户订单号out_trade_no选择String20230806151343349
请求时间time是Int179288640010位Unix秒时间戳,参与签名。
时间与签名规则
签名字符串sign是String202cb962a..7152d234b70签名算法点此查看
签名类型sign_type否StringMD5默认为MD5

提示:系统订单号 和 商户订单号 二选一传入即可,如果都传入以系统订单号为准!

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询订单号成功!
易支付订单号trade_noString2023080622555342651柠檬支付订单号
商户订单号out_trade_noString20230806151343349商户系统内部的订单号
第三方订单号api_trade_noString20230806151343349支付宝微信等接口方订单号
支付方式typeStringalipay支付方式列表
商户IDpidInt1001发起支付的商户ID
创建订单时间addtimeString2023-08-06 22:55:52
完成交易时间endtimeString2023-08-06 22:55:52
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态statusInt01为支付成功,0为未支付
业务扩展参数paramString默认留空
支付者账号buyerString默认留空

[API]批量查询订单

URL地址:https://a1026a.lemzf.com/api.php?act=orders&pid={商户ID}&time={10位Unix秒时间戳}&sign={32位签名字符串}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringorders此API固定值
商户IDpid是Int1001
查询数量limit否Int20返回的订单数量,最大50
起始位置offset否Int0当前查询的起始位,最大2000
请求时间time是Int179288640010位Unix秒时间戳,参与签名。
时间与签名规则
签名字符串sign是String202cb962a..7152d234b70签名算法点此查看
签名类型sign_type否StringMD5默认为MD5

返回结果:

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

[API]提交订单退款

需要先在商户后台开启订单退款API接口开关,才能调用该接口发起订单退款

URL地址:https://a1026a.lemzf.com/api.php?act=refund

请求方式:POST

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
易支付订单号trade_no特殊可选String20230806151343349021易支付订单号
商户订单号out_trade_no特殊可选String20230806151343349订单支付时传入的商户订单号,商家自定义且保证商家系统中唯一
退款金额money是String1.50少数通道需要与原订单金额一致
退款原因refund_reason否String用户取消订单可选,传入时参与签名。
UTF-8文本,最多200个字符,随退款通知回传。
默认“未提供退款原因”。
请求时间time是Int179288640010位Unix秒时间戳,参与签名。
时间与签名规则
签名字符串sign是String202cb962a..7152d234b70签名算法点此查看
签名类型sign_type否StringMD5默认为MD5

注:trade_no、out_trade_no 不能同时为空,如果都传了以trade_no为准

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString退款成功
退款金额moneyString1.50退款成功时返回本次退款金额,单位元

SDK下载

通用PHP-SDK.zip - 适合自研编写代码对接
其他PHP系统-SDK.zip - SSPanel多版本/WHMCS/Woocommerce

常见面板对接教程/示例

v2board机场: https://t.me/lempay_channel/880
dujiao独角发卡: https://github.com/assimon/dujiaoka/wiki
商户id 填: 给你的商户ID
商户key 填:https://{接口地址}/submit.php
商户密钥 填: 给你的密钥
支付场景 填: 通用