更新时间:2024-11-22 17:35:27
日期 | 接口 | 内容 |
---|---|---|
2017-11-14 | 新增文档:刷卡(条码)支付、退款申请、支付查询、撤销 | 支付退款查询撤销请求类型000,当前版本号 110 |
2019-03-30 | 新增支持 和包支付 |
本dll封装了扫呗支付接口,barcodepay,refund,query,和cancel的网络请求和接收,和轮询回调支付结果的完整的流程(PayService).
主要用于PC版收银软件的接口对接引入、Powerbuilder开发工具、C++和C#语言的引入。
1、下载扫呗支付dll文件. 下载地址:
2、声明函数, 以条码支付为例,参数含义详见 刷卡(条码)支付
Powerbuilder12.5
FUNCTION string BarcodePay(ref string merchant_no, ref string terminal_id,ref string terminal_trace,ref string terminal_time,ref string auth_no,ref string total_fee,ref string good_detail,ref string token,ref string payurl) LIBRARY "lcpay_sdk.dll" ALIAS FOR "BarcodePay;ansi"
C++
typedef char* (*BarcodePay)(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *auth_no, char *total_fee, char *goods_detail, char *access_token, char *url);
HINSTANCE hMod = LoadLibrary(_T("lcpay_sdk.dll")); // 注:使用后需要调用FreeLibrary(hMod);释放dll
SDK文件名lcpay_sdk.dll,共导出:支付BarcodePay,退款Refund、查询Query、撤销CancelPay、支付流程PayService五个函数;;
out_trade_no
、或接入商终端流水号pay_trace
和终端支付时间pay_time
退款;支持部分退款. out_trade_no
查询、或接入商终端流水号pay_trace
和终端支付时间pay_time
查询; out_trade_no
、或接入商终端流水号pay_trace
和终端支付时间pay_time
撤销; pay_trace
和pay_time
联合异常查询 ; 返回参数BarcodepayOutstr示例:
BarcodepayOutstr={
"channel_trade_no":"2017111721001104680200756475",
"end_time":"20171117143227",
"key_sign":"1f86c43df47efe37198096aa8bf76a3a",
"merchant_name":"利楚扫码对接专用-参数勿动",
"merchant_no":"810000270000007",
"out_trade_no":"300505520012117111714322700007",
"pay_type":"020",
"receipt_fee":"1",
"result_code":"01",
"return_code":"01",
"return_msg":"支付成功",
"terminal_id":"30050552",
"terminal_time":"20171117143224",
"terminal_trace":"ab5e8d77a63648ee84ed2b3b59a66d31",
"total_fee":"1",
"user_id":"2088302647936684"
}
char *BarcodePay(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *auth_no, char *total_fee, char *goods_detail, char *access_token, char *url)
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
merchant_no | char* | 15 | Y | 商户号 |
terminal_id | char* | 8 | Y | 终端号 |
terminal_trace | char* | 32 | Y | 终端流水号,填写商户系统的订单号 |
terminal_time | char* | 14 | Y | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
auth_no | char* | 128 | Y | 授权码 |
total_fee | char* | 12 | Y | 金额,单位分 |
goods_detail | char* | 2048 | N | 订单包含的商品列表信息,Json格式。口碑时,可选填此字段 |
access_token | char* | 32 | Y | 令牌 |
url | char* | 128 | Y | 接口地址(请求域名,由技术提供) |
请求参数goods_detail
的内容说明
参数名称 | 类型 | 必填 | 说明 |
---|---|---|---|
goods_Id | char* | N | 商品编号 |
goods_name | char* | N | 商品名称 |
quantity | char* | N | 商品数量 |
price | char* | N | 商品单价,单位为分 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | char* | 2 | Y | 响应码:01成功 , 02失败, 03通信失败,响应码仅代表通信状态,不代表业务结果 |
return_msg | char* | 128 | Y | 返回信息提示,“支付成功”,“支付中”,“请求受限”等 |
以下字段在return_code为01
时返回
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
result_code | char* | 2 | N | 业务结果:01成功 02失败 , 03支付中 |
pay_type | char* | 3 | N | 请求类型,010微信, 020 支付宝,060qq钱包, 080京东钱包,090口碑, 100翼支付,110银联二维码, 140和包支付 |
merchant_name | char* | 40 | N | 商户名称 |
merchant_no | char* | 15 | N | 商户号 |
terminal_id | char* | 8 | N | 终端号 |
terminal_trace | char* | 32 | N | 终端流水号,商户系统的订单号,扫呗系统原样返回 |
terminal_time | char* | 14 | N | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
total_fee | char* | 12 | N | 金额,单位分 |
end_time | char* | 14 | N | 支付完成时间,yyyyMMddHHmmss,全局统一时间格式 |
out_trade_no | char* | 32 | N | 利楚唯一订单号 |
channel_trade_no | char* | 32 | N | 通道订单号,微信订单号、支付宝订单号等,返回时不参与签名 |
channel_order_no | char* | 64 | N | 银行渠道订单号,微信支付时显示在支付成功页面的条码,可用作扫码查询和扫码退款时匹配 |
user_id | char* | 32 | N | 付款方用户id,“微信openid”、“支付宝账户”、“qq号”等,返回时不参与签名 |
attach | char* | 128 | N | 附加数据,原样返回 |
receipt_fee | char* | 12 | N | 口碑实收金额 |
key_sign | char* | 32 | N | 签名字符串 |
说明:以业务结果result_code来判断支付状态:01
成功 02
失败 ,03
支付中
char *Refund(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *refund_fee, char *out_trade_no, char *pay_trace, char *pay_time, char *access_token, char *url)
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
merchant_no | char* | 15 | Y | 商户号 |
terminal_id | char* | 8 | Y | 终端号 |
terminal_trace | char* | 32 | Y | 终端退款流水号,填写商户系统的退款流水号 |
terminal_time | char* | 14 | Y | 终端退款时间,yyyyMMddHHmmss,全局统一时间格式 |
refund_fee | char* | 12 | Y | 退款金额,单位分 |
out_trade_no | char* | 64 | Y | 订单号,查询凭据,利楚订单号、微信订单号、支付宝订单号任意一个 |
pay_trace | char* | 32 | N | 当前支付终端流水号,与pay_time同时传递 |
pay_time | char* | 14 | N | 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递 |
access_token | char* | 32 | Y | 令牌 |
url | char* | 128 | Y | 接口地址(请求域名,由技术提供) |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | char* | 2 | Y | 响应码:01成功 , 02失败, 03通信失败,响应码仅代表通信状态,不代表业务结果 |
return_msg | char* | 128 | Y | 返回信息提示,“退款成功”、“订单不存在”等 |
以下字段在return_code为01
时返回
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
result_code | char* | 2 | N | 业务结果:01成功 , 02失败 |
pay_type | char* | 3 | N | 请求类型,010微信, 020 支付宝,060qq钱包, 080京东钱包,090口碑, 100翼支付,110银联二维码, 140和包支付 |
merchant_name | char* | 40 | N | 商户名称 |
merchant_no | char* | 15 | N | 商户号 |
terminal_id | char* | 8 | N | 终端号 |
terminal_trace | char* | 32 | N | 终端流水号,商户系统的订单号,扫呗系统原样返回 |
terminal_time | char* | 14 | N | 终端退款时间,yyyyMMddHHmmss,全局统一时间格式 |
refund_fee | char* | 12 | N | 退款金额,单位分 |
end_time | char* | 14 | N | 退款完成时间,yyyyMMddHHmmss,全局统一时间格式 |
out_trade_no | char* | 32 | N | 利楚唯一订单号 |
out_refund_no | char* | 32 | N | 利楚唯一退款单号 |
key_sign | char* | 32 | N | 签名字符串 |
说明:以业务结果result_code来判断状态:01
成功 02
失败
char *Query(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *pay_trace, char *pay_time, char *out_trade_no, char *access_token, char *url)
接口说明 1.此接口用于查询支付状态,对于同一笔订单,轮询策略:建议5秒查一次,最多查15次; 2.查询的方式:第一种,用out_trade_no查;第二种,用pay_trace和pay_time(为支付时的terminal_trace和terminal_time)联合查询 3.需要查询的状态:支付时网络请求异常;用户输密码,处于支付中:result_code=03
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
merchant_no | char* | 15 | Y | 商户号 |
terminal_id | char* | 8 | Y | 终端号 |
terminal_trace | char* | 32 | Y | 终端查询流水号,填写商户系统的查询流水号 |
terminal_time | char* | 14 | Y | 终端查询时间,yyyyMMddHHmmss,全局统一时间格式 |
pay_trace | char* | 32 | N | 当前支付终端流水号,与pay_time同时传递 |
pay_time | char* | 14 | N | 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递 |
out_trade_no | char* | 64 | Y | 订单号,查询凭据,可填利楚订单号、微信订单号、支付宝订单号、银行卡订单号任意一个 |
access_token | char* | 32 | Y | 令牌 |
url | char* | 32 | Y | 接口地址(请求域名,由技术提供) |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | char* | 2 | Y | 响应码:01成功 , 02失败, 03通信失败,响应码仅代表通信状态,不代表业务结果 |
return_msg | char* | 128 | Y | 返回信息提示,“支付成功”,“支付中”,“请求受限”等 |
以下字段在return_code为01
时返回
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
result_code | char* | 2 | N | 业务结果:01成功 , 02失败 ,03支付中。 支付失败和退款成功状态均返回 02,具体状态和原因会在 return_msg中给出解释 |
pay_type | char* | 3 | N | 请求类型,010微信, 020 支付宝,060qq钱包, 080京东钱包,090口碑, 110银联二维码, 140和包支付 |
trade_state | char* | 10 | N | 交易订单状态,SUCCESS支付成功, REFUND转入退款,NOTPAY未支付, CLOSED已关闭,USERPAYING用户支付中, REVOKED已撤销,NOPAY未支付支付超时, PAYERROR支付失败 |
merchant_name | char* | 40 | N | 商户名称 |
merchant_no | char* | 15 | N | 商户号 |
terminal_id | char* | 8 | N | 终端号 |
terminal_trace | char* | 32 | N | 终端流水号,商户系统的订单号,扫呗系统原样返回 |
terminal_time | char* | 14 | N | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
total_fee | char* | 12 | N | 金额,单位分 |
end_time | char* | 14 | N | 支付完成时间,yyyyMMddHHmmss,全局统一时间格式 |
out_trade_no | char* | 32 | N | 利楚唯一订单号 |
channel_trade_no | char* | 32 | N | 通道订单号,微信订单号、支付宝订单号等,返回时不参与签名 |
channel_order_no | char* | 64 | N | 银行渠道订单号,微信支付时显示在支付成功页面的条码,可用作扫码查询和扫码退款时匹配 |
user_id | char* | 32 | N | 付款方用户id,“微信openid”、“支付宝账户”、“qq号”等,返回时不参与签名 |
receipt_fee | char* | 12 | N | 口碑实收金额,pay_type为 090时必填 |
key_sign | char* | 32 | N | 签名字符串 |
说明:以业务结果result_code来判断状态:01
成功 02
失败
char *CancelPay(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *out_trade_no, char *pay_trace, char *pay_time, char *access_token, char *url)
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
merchant_no | char* | 15 | Y | 商户号 |
terminal_id | char* | 8 | Y | 终端号 |
terminal_trace | char* | 32 | Y | 终端流水号(socket协议:长度为6位,Http协议:长度为32位) |
terminal_time | char* | 14 | Y | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
out_trade_no | char* | 32 | N | 利楚唯一订单号,优先使用订单号out_trade_no发起撤销,在out_trade_no获取异常的情况,可使用当前支付请求的终端交易流水号pay_trace和终端交易时间pay_time发起撤销 |
pay_trace | char* | 32 | N | 当前支付终端流水号,与pay_time同时传递 |
pay_time | char* | 14 | N | 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递 |
access_token | char* | 32 | Y | 令牌 |
url | char* | 32 | Y | 接口地址(请求域名,由技术提供) |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | char* | 2 | Y | 响应码:01成功 , 02失败, 03通信失败,响应码仅代表通信状态,不代表业务结果 |
return_msg | char* | 128 | Y | 返回信息提示,“退款成功”、“订单不存在”等 |
以下字段在return_code为01
时返回
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
result_code | char* | 2 | N | "业务结果,“01”成功,表示撤销成功,此笔订单不能再发起支付;若已支付完成,则会发起退款;“02”失败,表示撤销接口异常,根据recall判断是否可再次发起撤销操作;" |
pay_type | char* | 3 | N | 请求类型,“010”微信,“020”支付宝,“060”qq钱包 |
merchant_name | char* | 40 | N | 商户名称 |
merchant_no | char* | 15 | N | 商户号 |
terminal_id | char* | 8 | N | 终端号 |
terminal_trace | char* | 32 | N | 终端流水号(socket协议:长度为6位,Http协议:长度为32位) |
terminal_time | char* | 14 | N | 终端撤销时间,yyyyMMddHHmmss,全局统一时间格式 |
recall | char* | 1 | N | 是否重新发起撤销 |
key_sign | char* | 32 | N | 签名字符串 |
说明:以业务结果result_code来判断状态
char *PayService(char *merchant_no, char *terminal_id, char *terminal_trace, char *terminal_time, char *auth_no, char *total_fee, char *goods_detail, char *access_token, char *url)
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
merchant_no | char* | 15 | Y | 商户号 |
terminal_id | char* | 8 | Y | 终端号 |
terminal_trace | char* | 32 | Y | 终端流水号,填写商户系统的订单号 |
terminal_time | char* | 14 | Y | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
auth_no | char* | 128 | Y | 授权码 |
total_fee | char* | 12 | Y | 金额,单位分 |
goods_detail | char* | 2048 | N | 订单包含的商品列表信息,Json格式。口碑时,可选填此字段 |
access_token | char* | 32 | Y | 终端令牌 |
url | char* | 128 | Y | 接口地址(请求域名,由技术提供) |
请求参数goods_detail
的内容说明
参数名称 | 类型 | 必填 | 说明 |
---|---|---|---|
goods_Id | char* | N | 商品编号 |
goods_name | char* | N | 商品名称 |
quantity | char* | N | 商品数量 |
price | char* | N | 商品单价,单位为分 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | char* | 2 | Y | 响应码:01成功 , 02失败, 03通信失败,响应码仅代表通信状态,不代表业务结果 |
return_msg | char* | 128 | Y | 返回信息提示,“支付成功”,“支付中”,“请求受限”等 |
以下字段在return_code为01
时返回
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
result_code | char* | 2 | N | 业务结果:01成功 02失败 |
pay_type | char* | 3 | N | 请求类型,010微信, 020 支付宝,060qq钱包, 080京东钱包,090口碑, 100翼支付,110银联二维码, 140和包支付 |
merchant_name | char* | 40 | N | 商户名称 |
merchant_no | char* | 15 | N | 商户号 |
terminal_id | char* | 8 | N | 终端号 |
terminal_trace | char* | 32 | N | 终端流水号,商户系统的订单号,扫呗系统原样返回 |
terminal_time | char* | 14 | N | 终端交易时间,yyyyMMddHHmmss,全局统一时间格式 |
total_fee | char* | 12 | N | 金额,单位分 |
end_time | char* | 14 | N | 支付完成时间,yyyyMMddHHmmss,全局统一时间格式 |
out_trade_no | char* | 32 | N | 利楚唯一订单号 |
channel_trade_no | char* | 32 | N | 通道订单号,微信订单号、支付宝订单号等,返回时不参与签名 |
channel_order_no | char* | 64 | N | 银行渠道订单号,微信支付时显示在支付成功页面的条码,可用作扫码查询和扫码退款时匹配 |
user_id | char* | 32 | N | 付款方用户id,“微信openid”、“支付宝账户”、“qq号”等,返回时不参与签名 |
attach | char* | 128 | N | 附加数据,原样返回 |
receipt_fee | char* | 12 | N | 口碑实收金额 |
key_sign | char* | 32 | N | 签名字符串 |
说明:以业务结果result_code来判断支付状态:01
成功 02
失败