DLL接口功能说明

更新时间:2024-04-22 13:06:50

日期 接口 内容
2017-11-14 新增文档:刷卡(条码)支付、退款申请、支付查询、撤销 支付退款查询撤销请求类型000,当前版本号110
2019-03-30 新增支持和包支付

1. DLL接口功能说明

本dll封装了扫呗支付接口,barcodepay,refund,query,和cancel的网络请求和接收,和轮询回调支付结果的完整的流程(PayService).
主要用于PC版收银软件的接口对接引入、Powerbuilder开发工具、C++和C#语言的引入。

2. DLL接入流程

1、下载扫呗支付dll文件. 下载地址:
Delphi7 DEMO
PB DEMO

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

3. 函数说明

SDK文件名lcpay_sdk.dll,共导出:支付BarcodePay,退款Refund、查询Query、撤销CancelPay、支付流程PayService五个函数;;

  1. 条码支付(BarcodePay):融合支付,支持多种支付类型:微信,支付宝,qq钱包,京东钱包,口碑,翼支付,银联二维码;
  2. 退款(Refund):使用微信,支付宝官方订单或利楚唯一订单号out_trade_no 、或接入商终端流水号pay_trace和终端支付时间pay_time退款;支持部分退款.
  3. 查询(Query):使用利楚唯一订单号out_trade_no查询、或接入商终端流水号pay_trace 和终端支付时间pay_time 查询;
  4. 撤销(CancelPay):使用利楚唯一订单号out_trade_no、或接入商终端流水号pay_trace和终端支付时间pay_time撤销;
  5. 支付流程(PayService):函数封装了支付请求和查询接口,在用户输入密码过程中,自动进行轮询(5s一次,查询15次).网络超时的情况下使用pay_tracepay_time联合异常查询 ;
  6. 接口返回参数如无特殊说明,均为Json格式(参照3.1刷卡(条码)支付:返回参数BarcodepayOutstr);

    返回参数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"
}

3.1. 刷卡(条码)支付

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 商品单价,单位为分

返回参数

  • 返回参数BarcodepayOutstr(Json格式,为以下参数)
参数名称 类型 长度 必填 说明
return_code char* 2 Y 响应码:01成功 ,02失败,03通信失败,响应码仅代表通信状态,不代表业务结果
return_msg char* 128 Y 返回信息提示,“支付成功”,“支付中”,“请求受限”等

以下字段在return_code01时返回

参数名称 类型 长度 必填 说明
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支付中

3.2. 退款申请

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 接口地址(请求域名,由技术提供)

返回参数

  • 返回参数RefundOutstr(Json格式,为以下参数)
参数名称 类型 长度 必填 说明
return_code char* 2 Y 响应码:01成功 ,02失败,03通信失败,响应码仅代表通信状态,不代表业务结果
return_msg char* 128 Y 返回信息提示,“退款成功”、“订单不存在”等

以下字段在return_code01时返回

参数名称 类型 长度 必填 说明
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失败

3.3. 支付查询

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 接口地址(请求域名,由技术提供)

返回参数

  • 返回参数QueryOutstr(Json格式,为以下参数)
参数名称 类型 长度 必填 说明
return_code char* 2 Y 响应码:01成功 ,02失败,03通信失败,响应码仅代表通信状态,不代表业务结果
return_msg char* 128 Y 返回信息提示,“支付成功”,“支付中”,“请求受限”等

以下字段在return_code01时返回

参数名称 类型 长度 必填 说明
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失败

3.4. 撤销交易

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 接口地址(请求域名,由技术提供)

返回参数

  • 返回参数CancelOutstr(Json格式,为以下参数)
参数名称 类型 长度 必填 说明
return_code char* 2 Y 响应码:01成功 ,02失败,03通信失败,响应码仅代表通信状态,不代表业务结果
return_msg char* 128 Y 返回信息提示,“退款成功”、“订单不存在”等

以下字段在return_code01时返回

参数名称 类型 长度 必填 说明
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来判断状态

4. 支付流程

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 商品单价,单位为分

返回参数

  • 返回参数payresult(Json格式,为以下参数)
参数名称 类型 长度 必填 说明
return_code char* 2 Y 响应码:01成功 ,02失败,03通信失败,响应码仅代表通信状态,不代表业务结果
return_msg char* 128 Y 返回信息提示,“支付成功”,“支付中”,“请求受限”等

以下字段在return_code01时返回

参数名称 类型 长度 必填 说明
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失败


© 利楚商服 2020 All rights reserved.