在接入了拉卡拉聚合支付api接口后,商户或平台发可通过api接口向拉卡拉的api接口传入对应的参数,然后通过回调参数即可完成支付的链路流程。下面的流程的详细介绍:
1、消费在商户的平台(小程序/app等渠道)选择商品,提交订单
2、接入方生成业务订单
3、请求拉卡拉收银台下单接口,生成支付订单。
4、生成支付订单
5、返回收银台URL
6、加载收银台
7、选择支付方式
(说明:微信建议用聚合主扫,支付宝用聚合收银台。支付宝实现的方式原理是用的吱口令实现,开发方可自行前端做一个判断)
8、发起支付请求,传入参数及其解释如下:
URL地址
测试环境:test.wsmsd.cn/sit/api/v3/ccss/counter/order/special_create
生产环境:s2.lakala.com/api/v3/ccss/counter/order/special_create
【下文中如需获取对应的生产参数或有不明白的地方,可点击此处咨询人工客服联系销售)
{
"req_data": {
"out_order_no": "商户订单号", //必传
"merchant_no": "获取的拉卡拉商户号", //必传
"vpos_id": "交易设备标识", //非必传
"channel_id": "渠道号", //非必传
"total_amount": "订单金额",//必传,单位:分)
"order_efficient_time": "订单有效期", //必传,格式yyyyMMddHHmmss,最大支持下单时间为7天
"notify_url": "订单支付后商户接收订单通知的地址", //非必传
"support_cancel": "是否支持撤销", //非必传,值为0不支持,1支持,默认为0
"support_refund": "是否支持退款", //非必传,值为0不支持,1支持,默认为0
"support_repeat_pay": "是否支持多次发起支付", //非必传,值为0不支持,1支持
"busi_type_param": "[{"busi_type":"UPCARD","params":{"crd_flg":"CRDFLG_D|CRDFLG_C|CRDFLG_OTH"}},{"busi_type":"SCPAY","params":{"pay_mode":"WECHAT","crd_flg":"CRDFLG_D"}}]",
//非必传,业务类型控制参数。参数说明:UPCARD-刷卡,SCPAY-扫码,CRDFLG_D-借记卡,CRDFLG_C-贷记卡,CRDFLG_OTH-不明确是借记卡还是贷记卡,pay_mode送参说明:ALIPAY-支付宝,WECHAT-微信,UNION-银联二维码,DCPAY-数字货币,BESTPAY-翼支付。说明:一旦使用该字段,则增加限制,必须在指定限制范围内支付。比如,只配置”busi_type”:”UPCARD”的参数而不配置”busi_type”:”SCPAY”的参数,则只能通过刷卡而不能通过扫码完成支付
"counter_param": "{"pay_mode":"ALIPAY"}",
//非必传,json字符串 收银台展示参数。参数说明:{“pay_mode“ : “ALIPAY“} ,指定支付方式为支付宝。对应的值ALIPAY:支付宝、WECHAT:微信、UNION:银联云闪付、CARD:POS刷卡交易、LKLAT:线上转帐、QUICK_PAY:快捷支付、EBANK:网银支付、UNION_CC:银联支付、BESTPAY:翼支付、HB_FQ:花呗分期、UNION_FQ:银联聚分期、ONLINE_CARDLESS:线上外卡
"out_user_id": "发起订单的userID", //非必传
"order_info": "订单标题", //必传,通常可理解为商品名称+时间戳+用户名等或单独的商品名称
"extend_info": "",
"callback_url": "支付之后返回的跳转地址", //必传
"version": "3.0", // 必传,版本号
"req_time": "请求时间" //必传,格式yyyyMMddHHmmss
9、拉卡拉进行交易处理
10、拉卡拉侧返回支付结果通知,返回响应参数详细解释如下:
{
"msg": "操作成功", //返回业务代码的描述
"resp_time": "响应时间", //格式为yyyyMMddHHmmss
"code": "000000", //返回业务代码,000000为成功,其他按照错误返回来确定
"resp_data": {
"merchant_no": "拉卡拉商户号",
"channel_id": "25",
"out_order_no": "商户订单号",
"order_create_time": "订单创建的时间", //订单系统创建订单的时间,格式:yyyyMMddHHmmss
"order_efficient_time": "订单有效期截止XXXXX", //格式:yyyyMMddHHmmss
"pay_order_no": "平台订单号",
"counter_url": "收银台地址信息"
}
}
11、查询支付结果,订单查询请求参数及其解释如下:
URL
测试环境:test.wsmsd.cn/sit/api/v3/ccss/counter/order/query
生产环境:s2.lakala.com/api/v3/ccss/counter/order/query
说明:输入参数要么传out_order_no+merchant_no,要么传pay_order_no+merchant_no。
{
"req_time": "请求时间",
"version": "3.0",
"req_data": {
"pay_order_no": "支付订单号", //必传,和out_order_no二选一
"out_order_no":"商户订单号", //必传,和pay_order_no二选一
"merchant_no": "拉卡拉商户号", //必传
"channel_id": "渠道号" //非必传
}
}
12、返回查询的支付结果,其返回参数及其解释如下:
{
"msg": "操作成功",
"resp_time": "响应时间", //格式为yyyyMMddHHmmss
"code": "000000", //返回业务代码,000000为成功,其他按照错误返回来确定
"resp_data": {
"pay_order_no": "支付订单号",
"out_order_no": "商户订单号",
"channel_id": "渠道号",
"trans_merchant_no": "交易的拉卡拉商户号",
"trans_term_no": "交易终端号",
"merchant_no": "结算商户号",
"term_no": "结算终端号",
"order_status": "订单状态",
//订单状态值说明: 0:待支付 1:支付中 2:支付成功 3:支付失败 4:已过期 5:已取消 6:部分退款或者全部退款 7:订单已关闭枚举
"order_info": "订单描述",
"total_amount": 定金金额, //单位为分
"order_create_time": "订单创建时间",
"order_efficient_time": "订单有限时间",
"order_trade_info_list": [
{
"trade_no": "交易流水号",
"log_No": "对账单流水号",
"trade_type": "交易类型",
//对应的值: PAY-消费 REFUND-退款 CANCEL-撤销
"trade_status": "支付状态",
//对应的值: S:成功 F:失败 C:被冲正 U:预记状态 X:发送失败 T: 发送超时 P: 处理中
"trade_amount": 交易金额, //单位为分
"payer_amount": 付款人实际支付金额, //单位为分
"user_id1": "用户标识1", //非必须
"user_id2": "用户标识2", //非必须
"busi_type": "支付业务类型",
//对应的值: UPCARD-银行卡、SCPAY-扫码支付、DCPAY-数币支付、ONLINE-线上支付
"trade_time": "交易完成时间", //格式为yyyyMMddHHmmss
"acc_trade_no": "付款受理交易流水号", //主要是支付宝流水号、微信流水号
"payer_account_no": "付款人账号", //非必须
"payer_name": "付款人名称", //非必须,仅在ONLINE-线上支付交易返回
"payer_account_bank": "付款账号开户行", //非必须
"acc_type": "账户类型",
//非必须,值说明: busi_type为UPCARD时返回:00-借记卡,01-贷记卡,02-准贷记卡,03-预付卡、busi_type为SCPAY时返回:00:不确定,02-微信零钱,03-支付宝花呗,04-支付宝钱包,99-未知
"pay_mode": "付款方式"
//非必须,值说明:busi_type为SCPAY时返回:UQRCODEPAY-银联、WECHAT-微信、ALIPAY-支付宝
}
]
}
} 13、展示支付结果,支付完成。