拉卡拉开放平台<br />数字支付解决方案<br />──<br /> 最新版本 Ver 1.0<br /><br /><br />拉卡拉支付集团<br />版权所有,盗版必究接入说明安全统一接入规范请求网关的Header处理请求网关的签名伪代码拉卡拉响应伪代码接入流程Demo文件下载证书生成指引方式1方式2证书签名代码示例验签代码示例交易接口公共参数说明交易接口说明访问URL说明交易接口公共请求参数termExtInfo字段说明交易接口公共响应参数主扫支付(C扫B)接口主扫支付请求参数主扫支付请求参数:extendParams字段说明响应参数主扫支付响应参数JSAPI支付主扫JSAPI支付响应参数:payMode=WECHAT 时返回主扫JSAPI支付响应参数:payMode=ALIPAY 时返回主扫JSAPI支付响应参数:payMode=UQRCODEPAY 时返回主扫JSAPI支付响应参数:payMode=LKLACC 时返回NATIVE支付主扫NATIVE支付响应参数微信小程序支付主扫-微信小程序支付响应参数:微信App支付主扫-微信App支付响应参数支付宝H5支付主扫-支付宝H5支付响应参数示例报文NATIVE请求报文NATIVE成功响应报文NATIVE失败响应报文JSAPI请求报文JSAPI成功响应报文JSAPI失败响应报文错误码主扫支付接口错误码关单接口(C扫B/主扫)关单接口请求参数关单接口响应参数关单接口请求报文关单接口成功响应报文:关单接口错误码被扫支付接口(付款码支付/B扫C)被扫支付接口请求参数被扫支付接口extendParams字段说明支持的authCode说明被扫支付接口响应参数被扫支付接口请求报文被扫支付接口成功响应报文被扫支付接口错误码撤销接口(B扫C/付款码/被扫交易)被扫撤销接口请求参数撤销接口响应参数撤销接口请求报文撤销接口成功响应报文撤销接口失败响应报文撤销接口错误码外部订单查询外部订单查询请求参数外部订单查询响应参数外部订单查询请求报文外部订单查询成功响应报文交易订单查询交易订单查询请求参数交易订单查询响应参数交易订单查询请求报文示例交易订单查询响应报文示例退款接口退款接口请求参数退款接口响应参数退款请求示例报文退款请求成功响应示例报文退款接口错误码生成动态二维码接口动态二维码请求接口说明动态二维码txnField字段说明动态二维码orderField字段说明动态二维码响应参数动态二维码请求示例动态二维码响应示例微信openid查询微信openid查询请求接口说明微信openid查询响应参数微信openid查询请求示例微信openid查询响应示例子商户号查询子商户号查询请求接口说明子商户号查询响应参数子商户号查询请求示例子商户号查询响应示例错误码BPS错误码交易系统错误码LABS错误码结算接口公共参数说明结算接口版本结算接口公共请求参数结算接口公共响应参数订单结算接口订单结算接口请求参数订单结算接口revcData说明按比例结算请求示例:按金额结算请求示例:订单结算接口响应参数订单结算接口请求示例订单结算接口响应示例结算结果查询结算结果查询请求参数结算结果查询响应参数结算结果查询details说明结算结果查询revcData说明结算结果查询revcData示例:结算结果查询请求示例结算结果查询响应示例结算完成结果通知(异步)结算完成结果通知请求参数结算完成结果通知响应参数结算完成结果通知revcData说明结算完成结果通知请求示例商户入网接口(三代)公共参数说明接口版本说明商户入网接口公共请求参数商户入网接口公共响应参数地区码表经营内容字典表商户入网:经营内容字典表POS类型字典表商户入网:POS类型字典表结算周期字典表商户入网:结算周期字典表证件类型字典表商户入网:证件类型字典表费率类型字典表商户入网:费率类型字典表限额类型字典表商户入网:限额类型字典表新增商户进件增商进件请求接口业务参数说明(reqData)增商进件请求接口费率信息集合增商进件请求接口附件列表增商进件请求接口返回参数(respData)增商进件请求接口请求报文参考增商进件请求接口响应报文参考增网增终进件增网增终进件请求接口业务参数说明(reqData)增网增终进件费率信息集合增网增终进件附件列表增网增终进件返回参数(respData)增网增终请求报文参考增终请求报文参考增网增终进件响应报文参考商户信息变更商户信息变更请求接口业务参数说明(reqData)商户信息变更商户信息变更附件列表商户信息变更返回参数(respData)商户信息变更请求报文参考商户信息变更响应报文参考费率信息变更费率信息变更请求接口业务参数说明(reqData)费率信息变更:费率信息集合费率信息变更附件列表费率信息变更返回参数(respData)费率信息变更请求报文参考费率信息变更响应报文参考结算信息变更结算信息变更请求接口业务参数说明(reqData)结算信息变更附件列表结算信息变更返回参数(respData)结算信息变更请求报文参考结算信息变更响应报文参考进件信息查询进件信息查询请求接口业务参数说明(reqData)进件信息查询返回参数(respData)进件信息查询请求报文参考进件信息查询转人工响应报文参考进件信息查询审核通过响应报文参考进件回调通知签名Header进件回调通知加密进件回调通知报文参数进件回调通知响应报文参数进件回调通知:提交成功参考进件回调通知:审核通过报文参考附件上传附件上传请求接口业务参数说明(reqData)附件上传请求:附件类型枚举附件上传请求:返回参数(respData)附件上传请求报文参考附件上传请求响应报文参考附件补充上传附件补充上传请求接口业务参数说明(reqData)附件补充上传:附件类型枚举附件补充上传:返回参数(respData)附件补充上传请求报文参考附件补充上传响应报文参考商户状态变更商户状态变更请求接口业务参数说明(reqData)商户状态变更返回参数(respData)商户状态变更请求报文参考商户状态变更响应报文参考进件校验进件校验请求接口业务参数说明(reqData)进件校验返回参数(respData)进件校验请求报文参考进件校验响应报文参考商户信息查询商户信息查询请求接口业务参数说明(reqData)商户信息查询返回参数(respData)商户信息查询:终端列表商户信息查询:限额列表商户信息查询:费率信息列表商户信息查询:请求报文参考商户信息查询:响应报文参考进件复议提交进件复议提交请求接口业务参数说明(reqData)进件复议提交返回参数(respData)进件复议提交请求报文参考进件复议提交响应报文参考卡BIN信息查询卡BIN信息查询请求接口业务参数说明(reqData)卡BIN信息查询返回参数(respData)卡BIN信息查询请求报文参考卡BIN信息查询响应报文参考订单接口公共说明订单接口版本说明订单接口公共请求参数订单接口公共响应参数商户下单商户下单请求参数(reqData)商户下单返回参数(respData)商户下单请求报文参考商户下单响应报文参考订单全量信息查询订单全量信息查询请求参数(reqData)订单全量信息查询返回参数(respData)订单全量信息查询请求报文参考订单全量信息查询响应报文参考订单结果通知Header处理订单结果通知加密订单结果通知报文参数订单结果通知响应报文参数订单结果通知请求报文参考订单结果通知响应报文参考签名新商服接口公共说明新商服接口版本说明新商服接口公共请求参数新商服接口公共响应参数统一退货统一退货请求接口说明统一退货响应统一退货请求示例统一退货响应示例核心交易接口公共说明核心交易接口版本核心交易接口公共请求参数核心交易接口公共响应参数SaaS退款申请SaaS退款申请tradeCodeSaaS退款申请请求参数SaaS退款申请响应参数对文档存在疑问的,请联系您的项目对接经理。
本章内容为拉卡拉数字支付开放平台的接入公用说明。
对于任何想要获得拉卡拉数字支付相关能力的机构、商户和个人,如目前尚无项目经理与您进行对接,请联系我司邮箱 dcdp@lakala.com 。
原拉卡拉智能终端开放平台接入的客户,请点击此处访问相关内容。
测试环境地址:https://test.wsmsd.cn/sit/ 生产环境地址:https://s2.lakala.com/
拉卡拉会分配给对接方一个appId 获取拉卡拉公钥 测试环境:https://test.wsmsd.cn/sit/gw/pubcerts?appId=xxx 生产环境:https://s2.lakala.com/gw/pubcerts?appId=xx
各类接口地址
labs主扫支付url:https://test.wsmsd.cn/sit/labs/txn/labs_order_pre_orderpay labs关单url:https://test.wsmsd.cn/sit/labs/txn/labs_order_close labs被扫支付url:https://test.wsmsd.cn/sit/labs/txn/labs_order_micropay labs退款url:https://test.wsmsd.cn/sit/labs/txn/labs_order_refund labs动态码url:https://test.wsmsd.cn/sit/labs/txn/labs_dycode_create labs订单查询url:https://test.wsmsd.cn/sit/labs/txn/labs_order_query 订单结算url:https://test.wsmsd.cn/sit/mrss/ledger/settle_ledger 结算结果查询url:https://test.wsmsd.cn/sit/mrss/ledger/settle_result_query
请求到api网关的签名
Header中传送下列值
Authorization: 认证类型 签名信息 如
xxxxxxxxxx
21Authorization: “LKLAPI-SHA256withRSA appid=”${appid}”,serial_no=”${serialNo}”,timestamp=”${timeStamp}”,nonce_str=”${nonceStr}”,signature=”${signature}”“
2
其中 LKLAPI-SHA256withRSA 表示拉卡拉安全接入签名加密方式,如果有对称加密,如 LKLAPI-SHA256withRSA-AES128、 LKLAPI-SHA256withRSA-RC4
格式如:LKLAPI-{签名方式}-{加密方式} 如果仅是MD5加签,则写成 LKLAPI-MD5 如无签名加密,则写成 LKLAPI 不存在就为空 , 如仅仅使用3DES加密,则写成 LKLAPI–3DES
目前传统与智能终端是RSA1024签名方式则为 LKLAPI-SHA1withRSA
其中字段意义:
产生签名值signature的签名串拼接一共有5行,每一行为一个参数。行尾以\n(换行符,ASCII编码值为0x0A)结束,包括最后一行。如果参数本身以\n结束,也需要附加一个\n。
${appid}\n
${serialNo}\n ——存在则需要,不存在仅仅保留这个换行符\n
${timeStamp}\n
${nonceStr}\n
请求报文主体${body}\n
签名后的二进制值通过base64无76字符换行的方式进行传送 String signature = new String(Base64.encodeBase64(sign)) //不需要进行76字符换行
伪代码如
xxxxxxxxxx
41String preSignData=${appId}+”\n”+${serialNo}+”\n”+${timestamp}+”\n”+${nonce_str} +”\n”+${body} +”\n”
2byte [] signature = Base64.decodeBase64(map.get(“signature”))
3log.info(“准备验签名的数据:\n{}”, preSignData);
4boolean isSignOK = SecureUtils.verify(map.get(“signAlgorithm”), preSignData.getBytes(“utf-8”), accessDTO.getOrgPublicKey(), signature);
其中产生的签名用base64非76字符换行方式送出
拉卡拉响应签名
响应的Header信息包括:
其中,产生签名值Lklapi-Signature的签名串拼接一共有5行,每一行为一个参数。行尾以\n(换行符,ASCII编码值为0x0A)结束,包括最后一行。如果参数本身以\n结束,也需要附加一个\n。
${appid}\n ——存在则需要,不存在仅仅保留这个换行符\n
${serialNo}\n ——存在则需要,不存在仅仅保留这个换行符\n
${timeStamp}\n
${nonceStr}\n
响应报文主体${body}\n
伪代码如:
xxxxxxxxxx
131String nonce_str = com.lakala.sequence.utils.RandomUtils.generateString(12)
2long timestamp = System.currentTimeMillis()/1000
3String serialNo = accessDTO.getCertiSerial().split(EdgeConstants.MARK_COMMA)[0]
4String preSignData=${appId}+”\n”+${serialNo}+”\n”+${timestamp}+”\n”+${nonce_str} +”\n”+${body} +”\n”
5log.info(“准备验签名的数据:\n{}”,preSignData);
6byte[] sign = SecureUtils.sign(context.get(“signAlgorithm”), preSignData.getBytes(“utf-8”), accessDTO.getPrivateKeyMap().get(serialNo))
7String signature = new String(Base64.encodeBase64(sign)) //不需要进行76字符换行
8Headers headers = zuulMessage.getHeaders()
9headers.set(“Lklapi-Appid”, appId)
10headers.set(“Lklapi-Serial”, serialNo)
11headers.set(“Lklapi-Nonce”, nonce_str)
12headers.set(“Lklapi-Timestamp”, String.valueOf(timestamp))
13headers.set(“Lklapi-Signature”, signature)
注:对称加密传输时,默认采用AES-256的 CBC模式 AES/CBC/PKCS5Padding 初始向量16字节的 0x00
返回response:
附件
使用openssl工具来生成公私钥 将生成的公钥证书发给拉卡拉进行配置 参考文档:https://blog.csdn.net/bbwangj/article/details/82503675
此方式生成的私钥不是PEM格式,使用此方式生成证书请参考本页代码,不要使用DEMO代码。
访问https://getacert.com/ 点击Generate self-signed Certificate
输入公司名、城市、国家等相关信息,有效期可自行选择
确认信息后提交
生成4个文件,下载公钥证书和P12文件,私钥文件和CSR文件不需要下载,公钥证书请发送给拉卡拉对接人员,P12文件请妥善保存。如发生丢失作废失效等情况可以重新申请新证书并发送给拉卡拉。
签名代码如下: 别名需要修改成生成证书时候填写的公司名称,密码统一为password无需修改;
xxxxxxxxxx
141String data = "testinfo"; //需要签名的信息
2String p12Filename = "resource/lakala.p12"; //证书名称,请修改为相应文件地址
3String alias = "lakala"; //生成证书时候填写的Hostname
4String pwd = "password"; //证书密码,统一为password无需修改
5
6InputStream is = new FileInputStream(p12Filename); //生成p12文件输入流
7Signature s = Signature.getInstance("SHA256WithRSA"); //生成签名对象
8KeyStore ks = KeyStore.getInstance("PKCS12"); //生成P12对象
9ks.load(is, pwd.toCharArray()); //从p12文件流中读取密钥
10PrivateKey pri = (PrivateKey)(ks.getKey(alias, pwd.toCharArray())); //获取私钥
11s.initSign(pri); //设置私钥
12s.update(data.getBytes()); //设置需要签名的数据
13byte[] sign = s.sign(); //签名
14String signStr = Base64.getEncoder().encodeToString(sign); //生成Base64格式的签名
下载测试证书 生产验签证书请从拉卡拉对接人员处获取。 验签代码如下
xxxxxxxxxx
81String certFilename = "resource/lkl-apigw-v1.cer"; //拉卡拉提供的证书名称,请根据实际位置修改路径
2CertificateFactory cf = CertificateFactory.getInstance("X.509"); //生成X509格式证书工厂
3InputStream ci = new FileInputStream(certFilename); //创建证书文件输入流
4Certificate cert = cf.generateCertificate(ci); //从证书文件流中读取证书
5Signature signature = Signature.getInstance("SHA256WithRSA"); //生成签名对象
6signature.initVerify(cert); //设置验签证书
7signature.update(data.getBytes()); //设置需要验证签名的数据
8boolean result = signature.verify(sign); //验签
附件
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
请求签名 | 是 |
响应签名 | 是 |
需要BASE64编码 | 否 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/sit/labs/txn/xx |
生产环境URL | https://s2.lakala.com/labs/txn |
测试环境商户终端号 | 商户号:822290070111135 终端号: 29034705 商户号:822126090640003 终端号: 47781282 |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
timestamp | 时间戳 | C | Long | Unix时间戳。13位 |
rnd | 随机数 | C | String(32) | 随机数 |
ver | 版本号 | C | String(6) | 1.0.0 |
reqId | 请求序列号 | C | String(32) | - |
reqData | 请求参数 | M | Object | |
termExtInfo | 终端信息 | M | Object | 无特殊处理需求或无终端信息,填写”termExtInfo”:{} |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
termSN | 终端设备序列号 | C | String(64) | 商户终端设备的SN号,存在必填,如:QR930000001172 |
termBaseStation | 终端基站信息 | C | String(128) | 商户终端设备的基站信息,存在必填,上送格式为:MNC 移动网络号码(2)+LAC 位置区域码(5)+CID 基站编号(8)其中LAC不满五位,或CID不满足8位的均左补空格.如:00 6361 ·58130 为:00+LAC:6361+CID:58130 |
termLoc | 终端地理位置 | C | String(100) | 商户终端的地理位置,存在必填 格式:纬度,经度,+表示北纬、东经,-表示南纬、 西经,精度最长支持小数点后9位。举例:+37.123456789,-121.123456789 |
termIp | 终端IP地址 | C | String(32) | 商户终端的IP地址,存在必填,格式如36.45.36.95 |
termSerialNo | 终端设备串号 | C | String(64) | 商户终端硬件的设备串号,存在必填,静态码没有 |
termType | 终端设备类型 | C | String(2) | 商户终端硬件的设备类型,必填 01:PC 02:手机 03:收银机 04:移动终端 05:静态码 |
termModel | 终端型号 | C | String(64) | 商户终端型号 |
termManu | 终端厂商 | C | String(64) | 商户终端厂商 |
appCode | 终端app代码 | C | String(64) | 商户终端app代码 |
appVer | 终端app版本 | C | String(64) | 商户终端app版本 |
termFP | 终端指纹 | C | String(64) | 商户终端指纹 |
termBaseStation、termLoc、termIp三者必须上送一个
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retCode | 返回业务代码 | M | String(8) | 返回业务代码(000000为成功,其余按照错误信息来定) |
retMsg | 返回业务代码描述 | M | String(50) | 返回业务代码描述 |
sign | 签名 | C | String(32) | 默认MD5方式签名,签名内容为retData+secret_key。 |
timestamp | 时间戳 | M | Long | Unix时间戳,13位 |
rnd | 随机数 | C | String(32) | 随机数 |
reqId | 请求序列号 | C | String(32) | 请求序列号 |
respId | 响应序列号 | C | String(32) | 响应序列号 |
ver | 版本号 | M | String(6) | 版本号 |
respData | 响应参数 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
包括:jsapi/natvie/H5/APP/小程序。其中微信NATIVE已废弃
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_order_pre_orderpay 生产环境:https://s2.lakala.com/labs/txn/labs_order_pre_orderpay
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
payMode | 支付模式 | M | String(32) | 支付模式, 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 数字货币:DCPAY 拉卡拉钱包:LKLACC |
amount | 金额 | M | String(12) | 交易金额(单位分) |
openId | 用户子标识 sub_openid | C | String(128) | transType=51时(即公众号支付),此参数必传,只对微信支付有效 注:建议使用静默授权 微信公众号为用户的 openid 支付宝服务窗为用户的 buyer_id 银联JS支付为用户的 userId,获取用户授权返回00时必传 翼支付不需要上送 拉卡拉钱包为用户的userid |
spbillCreateIp | 付款方IP | M | String(32) | 用户的客户端IP,格式如36.45.36.95 |
transType | 接入方式 | M | String(2) | 41:NATIVE(微信不支持) 51:JSAPI(微信公众号支付,支付宝服务窗支付,银联JS支付,数字货币钱包支付,拉卡拉钱包) 61:微信APP支付(暂不支持) 71:微信小程序支付 81:支付宝H5支付(暂时只对labs使用) (61 71 81仅labs接口支持) |
orderId | 商户订单号 | M | String(32) | 商户系统唯一,可认为是交易的请求流水号 |
appId | 子商户公众账号ID sub_appid | C | String(32) | transType=51时(即公众号支付),有此值时,此参数必传,只对微信支付有效 |
extendParams | 业务扩展参数 | C | object | 支付宝业务扩展参数 JSON格式,见下列说明(目前不支持分期) |
frontUrl | 银联前台通知地址 | C | String(200) | 收款方向银联推送订单时上送的前台通知地址(仅允许为外网地址),用户完成支付点击,“返回”后,银联通过浏览器POST请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段 |
frontFailUrl | 银联失败交易前台通知地址 | C | String(200) | 收款方向银联推送订单时上送的失败交易前台通知地址(仅允许为外网地址),用户支付过程中交易失败,点击“返回”后,银联通过浏览器GET请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段,需与frontUrl同时出现,未上送默认为frontUrl的值 |
subject | 订单标题 | M | String(128) | 标题,用于简单描述订单或商品 |
settleType | 结算类型 | C | String(2) | 0:正常结算 1:暂缓结算 |
exterOrderSource | 订单来源 | C | String(16) | 一般一个机构一个分配好的订单来源,订单来源决定了主扫结果的通知 |
exterMerOrderNo | 外部商户订单号 | C | String(32) | 同一个订单来源,外部商户订单号不可重复 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
sysServiceProviderId | 服务商的PID | C | String(64) | 系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的 PID |
hbFqNum | 花呗分期期数 | M | String(3) | 支付宝花呗分期必送字段: 花呗分期数 3:3期 6:6期 12:12期 |
hbFqSellerPercent | 卖家承担手续费比例 | M | String(5) | 支付宝花呗分期必送字段: 卖家承担收费比例,商家承担手续费传入100,用户承担手续费传入0,仅支持传入100、0两种,其他比例暂不支持 100:代表商家贴息 0:代表用户承担手续费 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
tradeTime | 交易时间 | M | String(14) | 平台交易时间yyyyMMddHHmmss |
orderId | 商户订单号 | M | String(32) | 如果请求中携带,则返回 |
lklOrderId | 拉卡拉订单号 | C | String(32) |
(transType=51)
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
paySign | 支付签名信息 | C | String(256) | 签名 |
appId | 公众号id | C | String(32) | 商户注册具有支付权限的公众号成功后即可获得公众号id |
timeStamp | 时间戳 | C | String(32) | 当前的时间 |
nonceStr | 随机字符串 | C | String(32) | 随机字符串 |
package | 订单详情扩展字符串 | C | String(128) | 统一下单接口返回的prepay_id参数值 |
signType | 签名方式 | C | String(32) | 签名类型,支持RSA |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
prepayId | 预下单Id | C | String(32) | 预支付交易会话ID |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
redirectUrl | 银联JS支付重定向地址 | C | String(256) | 银联JS支付返回重定向地址 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
prepayId | 预下单Id | C | String(32) | 预支付交易会话ID |
(transType=41)
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
code | 二维码信息 | C | String(256) | 商户可用此参数自定义去生成二维码后展示出来进行扫码支付 |
codeImage | 二维码图片内容 | C | String(256) | 商户收款二维码图片。Base64编码,暂无 |
(transType=71)
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
prepayId | 预下单Id | C | String(32) | 预支付交易会话ID |
paySign | 支付签名信息 | C | String(256) | 签名 |
appId | 小程序id | C | String(32) | 商户注册具有支付权限的小程序成功后即可获得小程序id |
timeStamp | 时间戳 | C | String(32) | 当前的时间 |
nonceStr | 随机字符串 | C | String(32) | 随机字符串 |
package | 订单详情扩展字符串 | C | String(128) | 统一下单接口返回的prepay_id参数值 |
signType | 签名方式 | C | String(32) | 签名类型,支持RSA |
(transType=61)
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
prepayId | 预下单Id | C | String(32) | 预支付交易会话ID |
paySign | 支付签名信息 | C | String(256) | 签名 |
appId | 应用id | C | String(32) | 开放平台审核通过的应用APPID,为特约商户申请的应用APPID |
timeStamp | 时间戳 | C | String(32) | 当前的时间 |
nonceStr | 随机字符串 | C | String(32) | 随机字符串 |
package | 订单详情扩展字符串 | C | String(128) | 固定值 Sign=WXPay |
partnerId | 从业机构号 | C | String(32) | 支付分配的从业机构号 |
(transType=81)
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
formData | 为开发者生成前台页面请求需要的完整form 表单的 html(不包含自动提交脚本),商户可决定是否直接提交 form 表单,如需要直接提交的,可将这个表单的 String 加自动提交脚本输出到 http response 中,如不需要直接提交的,可以自行决定中间处理过程,但提交至支付宝侧的 form 表达内容不可修改,否则会引起支付宝侧报错。 | C | String(128) | 为银联支付宝H5支付时,为开发者生成前台页面请求需要的完整form 表单的 html |
xxxxxxxxxx
181{
2 "reqData": {
3 "mercId": "822100050210643",
4 "termNo": "47846848",
5 "payMode": "ALIPAY",
6 "amount": "000000000001",
7 "openId": "",
8 "spbillCreateIp": "127.1.10",
9 "transType": "41",
10 "orderId": "20200728165211",
11 "appId": "",
12 "subject": "测试专用"
13 },
14 "ver": "1.0.0",
15 "timestamp": "1541589957000",
16 "reqId": "baff59de4694438ca9089862253517a5",
17 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
18}
xxxxxxxxxx
161{
2 "respData": {
3 "tradeTime": "20200729150043",
4 "code": "https://qr.alipay.com/bax01969llc2hqjjifvm50ff",
5 "orderId": "20200728165211",
6 "lklOrderId": "20200729110113200266211202870109"
7 },
8 "timestamp": 1596006044804,
9 "rnd": null,
10 "ver": "1.0.0",
11 "reqId": "baff59de4694438ca9089862253517a5",
12 "respId": null,
13 "retCode": "000000",
14 "retMsg": "交易成功",
15 "cmdRetCode": "GLOBAL_SUCCESS"
16}
xxxxxxxxxx
71{
2 "retCode":"PT10FF",
3 "retMsg":"生成订单失败",
4 "sign":"",
5 "timestamp":1553823081169,
6 "ver":"1.0.0"
7}
xxxxxxxxxx
181{
2 "reqData": {
3 "mercId": "822162070120015",
4 "termNo": "47827142",
5 "payMode": "WECHAT",
6 "amount": "000000000001",
7 "openId": "olpr-0pHIp1AjaAr29LENlHi0cJ0",
8 "spbillCreateIp": "127.0.0.1",
9 "transType": "51",
10 "orderId": "2020072915yhl1422",
11 "appId": "wx9ef39b708f16694d",
12 "subject": "测试专用"
13 },
14 "ver": "1.0.0",
15 "timestamp": "1541589957000",
16 "reqId": "baff59de4694438ca9089862253517a5",
17 "termExtInfo":{"termLoc":"+155621.316/-125622.12"}
18}
xxxxxxxxxx
211{
2 "respData": {
3 "timeStamp": "1596008125",
4 "tradeTime": "20200729153540",
5 "package": "prepay_id=wx29153525159581b728038c9c1125323300",
6 "paySign": "wWYfaNyyMuqAHVppUfQHXLGLUVcDeCyMsbiMbT9NSEiO2+Y/1uYSFS27LYINaF9f5OoI6MJFvpZfwFGCTVByoNWUH+vfyeK96ITTsy0w44ng2paqdWRHN0D9qtUyVUcbNcf2C5jQ05H65SHNI8oUnUbwlHgGe5AA4JFqKdqiODXQ4g47F11B5/a3masTmHtE7VyIU8nIXz9iPRJh28NiY2DRSX7KMU8OGZb6Y+sAi2fLqfkB9sVHnWD3BzuXDI5xIAVj3BvF3LR38/JWeR9mEqCuQLo7VdC5WnmnqZyVo6KFExNL5Gsin85AILz8S8ibOn4ADmU7sXs0LiJ2bc7K3Q==",
7 "orderId": "2020072915yhl1422",
8 "lklOrderId": "20200729110113100266211202870161",
9 "appId": "wx2421b1c4370ec43b",
10 "signType": "RSA",
11 "nonceStr": "20ee06fc255a4606942470808e015112"
12 },
13 "timestamp": 1596008140382,
14 "rnd": null,
15 "ver": "1.0.0",
16 "reqId": "baff59de4694438ca9089862253517a5",
17 "respId": null,
18 "retCode": "000000",
19 "retMsg": "交易成功",
20 "cmdRetCode": "GLOBAL_SUCCESS"
21}
xxxxxxxxxx
111{
2 "respData": null,
3 "timestamp": 1596006460198,
4 "rnd": null,
5 "ver": "1.0.0",
6 "reqId": "baff59de4694438ca9089862253517a5",
7 "respId": null,
8 "retCode": "BPS10028",
9 "retMsg": "主扫支付失败(参数错误)",
10 "cmdRetCode": "PREPAY_ORDER_ERROR"
11}
错误码 | 描述 | 备注 |
---|---|---|
000000 | 交易成功 | - |
主扫支付关闭订单(支持动态二维码)
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_order_close 生产环境:https://s2.lakala.com/labs/txn/labs_order_close
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
ornMerOrderId | 原商户订单号 | C | String(32) | 同生成动态码中的商户订单号exterMerOrderNo |
ornOrderSource | 原订单来源 | C | String(16) | 原订单来源-同生成动态码接口中exterOrderSource |
ornOrderId | 原商户流水号 | C | String(32) | 主扫支付原商户订单号-orderId |
注:ornMerOrderId+ornOrderSource和ornOrderId 两者只送其一,如果同时都送会校验两者之间的关系。ornOrderId是做交易时的请求orderId。
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retcode | 响应码 | C | String(32) | |
message | 响应信息 | C | String(32) |
xxxxxxxxxx
111{
2 "reqData": {
3 "mercId": "822162070120015",
4 "termNo": "47827142",
5 "ornOrderId": "2020072915yhl1422"
6 },
7 "ver": "1.0.0"
8 "timestamp": "1541589957000",
9 "reqId": "baff59de4694438ca9089862253517a5",
10 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
11}
xxxxxxxxxx
141{
2 "respData": {
3 "retcode": "BBS00000",
4 "message": "订单已关闭"
5 },
6 "timestamp": 1596008376231,
7 "rnd": null,
8 "ver": "1.0.0",
9 "reqId": "baff59de4694438ca9089862253517a5",
10 "respId": null,
11 "retCode": "000000",
12 "retMsg": "交易成功",
13 "cmdRetCode": "GLOBAL_SUCCESS"
14}
错误码 | 描述 | 备注 |
---|---|---|
000000 | 交易成功 |
收银员使用扫码设备读取用户微信/支付宝/云闪付等APP付款码以后,二维码或条码信息传送至商户收银台, 由商户收银台或者商户后台调用该接口发起支付对用户进行收款。
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_order_micropay 生产环境:https://s2.lakala.com/labs/txn/labs_order_micropay
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
authCode | 支付授权码 | M | String(32) | 扫码支付授权码,设备读取用户APP中的条码或者二维码信息,用户付款码条形码规则见说明 |
amount | 金额 | M | String(12) | 交易金额(单位分) |
orderId | 商户订单号 | M | String(32) | 商户系统唯一 |
extendParams | 业务扩展参数 | C | object | 支付宝业务扩展参数 JSON格式,见下列说明 |
detail | 商品详情 | C | String(6000) | 订单包含的商品列表信息,Json格式。payMode为WECHAT,ALIPAY时,可选填此字段 |
scanType | 扫码类型 | C | String(1) | 0或不填:扫码支付 1:刷脸支付 |
appId | 子商户公众账号ID sub_appid | C | String(32) | 微信公众平台基本配置中的AppID(应用ID),传入后支付成功可返回对应公众号下的用户openid,只对微信支付有效 |
subject | 订单标题 | C | String(128) | 标题,用于简单描述订单或商品 |
settleType | 结算类型 | C | String(2) | 0:正常结算 1:暂缓结算 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
sysServiceProviderId | 服务商的PID | C | String(64) | 系统商编号。该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的 PID |
hbFqNum | 花呗分期期数 | M | String(3) | 支付宝花呗分期必送字段: 花呗分期数 3:3期 6:6期 12:12期 |
hbFqSellerPercent | 卖家承担手续费比例 | M | String(5) | 支付宝花呗分期必送字段: 卖家承担收费比例,商家承担手续费传入100,用户承担手续费传入0,仅支持传入100、0两种,其他比例暂不支持 100:代表商家贴息 0:代表用户承担手续费 |
属性 | 说明 | 备注 |
---|---|---|
微信 | 付款码10 11 12 13 14 15开头 | |
支付宝 | ALIPAY | 付款码25 26 27 28 29 30开头 |
银联 | UQRCODEPAY | 付款码62开头 |
翼支付 | BESTPAY | 付款码51开头 |
苏宁 | SUNING | 付款码83开头 |
数字货币 | DCPAY | 付款码01开头,第3位到第5位是002、003、004、005、008、009 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
tradeTime | 平台交易时间 | M | String(14) | 平台交易时间yyyyMMddHHmmss |
orderId | 商户订单号 | M | String(32) | |
amount | 订单金额 | C | String(12) | 单位分,12位,左补0 |
payMode | 支付方式 | C | String(16) | 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 数字货币: DCPAY |
weOrderNo | 账户端交易订单号 | C | String(32) | 账户端交易订单号 |
lklOrderId | 拉卡拉商户订单号 | C | String(32) | 拉卡拉生成的交易流水 |
openId | 用户标识 | C | String(128) | 用户在商户appid下的唯一标识 |
settlementTotalFee | 应结订单金额 | C | String(12) | 应结订单金额,单位分 |
clientDiscountAmt | 商户优惠金额(账户端) | C | String(12) | 账户端返回商户优惠金额,单位分 |
serverDiscountAmt | 账户端优惠金额(账户端) | C | String(12) | 账户端返回账户端优惠金额,单位分 |
platformDiscountAmount | 平台优惠金额 | C | String(12) | 平台优惠金额,单位分 |
bankType | 付款银行 | C | String(128) | 付款银行 |
activityId | 活动 ID | C | String(32) | 在账户端商户后台配置的批次 ID |
upIssAddnData | 银联单品营销 附加数据 | C | String(8000) | 参与单品营销优惠时返回 |
upCouponInfo | 银联优惠信息 出资方信息 | C | String(500) | 参与单品营销优惠时返回 数字货币中行返回示例说明:[{“fundchannel”:”BOC”,”amount”:”18”}] |
authCode为UQRCODEPAY的银联付款码若要支持银联单品营销功能,需要上送公共说明中的参数orderInfo、goodsInfo、termExtInfo中的termSN、termType,响应参数会新增公共说明中的参数issAddnData、couponInfo。具体见银联单品营销示例报文。 银联单品营销只支持全额退款。
xxxxxxxxxx
151{
2 "reqData": {
3 "mercId": "822100050210643",
4 "termNo": "47846848",
5 "payMode": "ALIPAY",
6 "authCode":"288078062895929480",
7 "amount": "1",
8 "orderId": "2020072915yhl3l987kl",
9 "subject": "测试专用"
10 },
11 "ver": "1.0.0",
12 "timestamp": "1541589957000",
13 "reqId": "baff59de4694438ca9089862253517a5",
14 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
15}
xxxxxxxxxx
191{
2 "respData": {
3 "tradeTime": "20200729160052",
4 "orderId": "2020072915yhl3l987kl",
5 "amount": "1",
6 "weOrderNo": "2020072922001464161428488717",
7 "lklOrderId": "20200729110113200166211202870175",
8 "openId": "2088802829664168",
9 "settlementTotalFee": "1"
10 },
11 "timestamp": 1596009653049,
12 "rnd": null,
13 "ver": "1.0.0",
14 "reqId": "baff59de4694438ca9089862253517a5",
15 "respId": null,
16 "retCode": "000000",
17 "retMsg": "交易成功",
18 "cmdRetCode": "GLOBAL_SUCCESS"
19}
```
错误码 | 描述 | 备注 |
---|---|---|
000000 | 交易成功 |
当日支付成功且需要取消的交易,可以调用该接口。接口逻辑 : 支付成功的撤销支付(资金会退还给用户)。 调用支付接口后请勿立即调用撤销订单接口,建议支付后至少15s后再调用撤销订单接口。
请求URL:
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_order_micropay_reverse 生产环境:https://s2.lakala.com/labs/txn/labs_order_micropay_reverse
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
orderId | 商户订单号 | M | String(32) | 商户系统唯一 |
ornOrderId | 原商户订单号 | C | String(32) | 原被扫交易上送的订单号 |
lklOrderNo | 原拉卡拉商户订单号 | C | String(32) | 原拉卡拉生成的交易流水 |
ornOrderId和lklOrderNo 必须送一个
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retcode | 响应码 | C | String(32) | |
message | 响应信息 | C | String(32) | |
orderId | 商户订单号 | C | String(32) | 如果请求中携带,则返回 |
xxxxxxxxxx
121{
2 "reqData": {
3 "mercId": "822100050210643",
4 "termNo": "47846848",
5 "orderId": "202007233yhl3l987kl",
6 "ornOrderId": "20ujk072915yhl3l987kl"
7 },
8 "ver": "1.0.0",
9 "timestamp": "1541589957000",
10 "reqId": "baff59de4694438ca9089862253517a5",
11 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
12}
xxxxxxxxxx
151{
2 "respData": {
3 "retcode":"BBS00000",
4 "message": "订单已撤销",
5 "orderId": "202007233yhl3l987kl"
6 },
7 "timestamp": 1596013728589,
8 "rnd": null,
9 "ver": "1.0.0",
10 "reqId": "baff59de4694438ca9089862253517a5",
11 "respId": null,
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "cmdRetCode": "GLOBAL_SUCCESS"
15}
xxxxxxxxxx
101{
2 "reqId":"",
3 "respData":null,
4 "respId":"",
5 "retCode":"PT10FF",
6 "retMsg":"撤销交易失败",
7 "rnd":"",
8 "timestamp":1555579845015,
9 "ver":"1.0.0"
10}
错误码 | 描述 | 备注 |
---|---|---|
000000 | 交易成功 | - |
使用场景是B端使用外部订单生成二维码,供用户扫码支付,在这种场景下,B端发起查询,只有生成二维码的订单信息,这时,用这个接口查询
请求URL:
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_ext_order_query 生产环境:https://s2.lakala.com/labs/txn/labs_ext_order_query
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
exterOrderSource | 订单来源 | M | String(16) | |
exterMerOrderNo | 商户订单号 | M | String(32) |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
amount | 交易金额 | C | String(12) | 单位分 |
tradeState | 交易状态 | C | String(32) | INIT-初始化 CREATE-下单成功 SUCCESS-交易成功 FAIL-交易失败 DEAL-交易处理中 UNKNOWN-未知状态 CLOSE-订单关闭 PART_REFUND-部分退款 REFUND-全部退款 REVOKED-订单撤销 |
payTime | 支付时间 | C | String(14) | 实际支付时间。yyyyMMddHHmmss |
weOrderNo | 账户端交易订单号 | C | String(32) | 账户端交易订单号 |
lklOrderNo | 拉卡拉商户订单号 | C | String(32) | 拉卡拉生成的交易流水 |
openId | 用户标识 | C | String(128) | 用户在商户appid下的唯一标识 |
settlementTotalFee | 应结订单金额 | C | String(12) | 应结订单金额,单位分 |
clientDiscountAmt | 商户优惠金额(账户端) | C | String(12) | 账户端返回商户优惠金额,单位分 |
serverDiscountAmt | 账户端优惠金额(账户端) | C | String(12) | 账户端返回账户端优惠金额,单位分 |
bankType | 付款银行 | C | String(128) | 付款银行 |
platformDiscountAmount | 平台优惠金额 | C | String(12) | 平台优惠金额,单位分 |
订单查询响应接口中的retCode及retMsg只代表查询流程的业务状态,交易的状态需根据respData中的tradeState字段来判定。
xxxxxxxxxx
101JSON
2{
3"reqData": {
4"mercId": "822126090640003",
5"exterMerOrderNo": "DD2020120404122424424",
6"exterOrderSource": "OS",
7"termNo": "47781282"
8},
9"ver": "1.0.0"
10}
xxxxxxxxxx
251{
2 "ver": "1.0.0",
3 "respId": null,
4 "respData": {
5 "amount": "1",
6 "platformDiscountAmount": null,
7 "payTime": null,
8 "ornOrderId": null,
9 "payMode": null,
10 "openId": "2088902457052615",
11 "bankType": null,
12 "clientDiscountAmt": "0",
13 "weOrderNo": "2020121422001452615717639231",
14 "serverDiscountAmt": "0",
15 "tradeState": "SUCCESS",
16 "lklOrderNo": "20201214110113200266211401190905",
17 "settlementTotalFee": null
18 },
19 "rnd": null,
20 "retCode": "000000",
21 "retMsg": "交易成功",
22 "cmdRetCode": "GLOBAL_SUCCESS",
23 "timestamp": 1607917705503,
24 "reqId": "baff59de4694438ca9089862253517a5"
25}
根据商户订单号或者平台订单号查询平台的具体订单信息
请求URL:
环境 | 地址 |
---|---|
测试环境 | https://test.wsmsd.cn/sit/labs/txn/labs_order_query |
生产环境 | https://s2.lakala.com/labs/txn/labs_order_query |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
ornOrderId | 原商户订单号 | C | String(32) | 商户系统唯一 |
lklOrderNo | 拉卡拉商户订单号 | C | String(32) | 拉卡拉生成的交易流水 |
ornOrderId和lklOrderNo 必须送一个
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
amount | 交易金额 | C | String(12) | 单位分 |
tradeState | 交易状态 | C | String(32) | INIT-初始化 CREATE-下单成功 SUCCESS-交易成功 FAIL-交易失败 DEAL-交易处理中 UNKNOWN-未知状态 CLOSE-订单关闭 PART_REFUND-部分退款 REFUND-全部退款 REVOKED-订单撤销 |
payTime | 支付时间 | C | String(14) | 实际支付时间。yyyyMMddHHmmss |
weOrderNo | 账户端交易订单号 | C | String(32) | 账户端交易订单号 |
lklOrderNo | 拉卡拉商户订单号 | C | String(32) | 拉卡拉生成的交易流水 |
openId | 用户标识 | C | String(128) | 用户在商户appid下的唯一标识 |
settlementTotalFee | 应结订单金额 | C | String(12) | 应结订单金额,单位分 |
clientDiscountAmt | 商户优惠金额(账户端) | C | String(12) | 账户端返回商户优惠金额,单位分 |
serverDiscountAmt | 账户端优惠金额(账户端) | C | String(12) | 账户端返回账户端优惠金额,单位分 |
bankType | 付款银行 | C | String(128) | |
platformDiscountAmount | 平台优惠金额 | C | String(12) | 平台优惠金额,单位分 |
订单查询响应接口中的retCode及retMsg只代表查询流程的业务状态,交易的状态需根据respData中的tradeState字段来判定。
xxxxxxxxxx
101JSON
2{
3 "reqData": {
4 "mercId": "822126090640003",
5 "ornOrderId": "DD2020120404122424424",
6 "lklOrderNo": "20201214110113200266211401190905",
7 "termNo": "47781282"
8 },
9 "ver": "1.0.0"
10}
xxxxxxxxxx
241{
2 "ver": "1.0.0",
3 "respId": null,
4 "respData": {
5 "amount": "1",
6 "platformDiscountAmount": null,
7 "payTime": null,
8 "ornOrderId": null,
9 "openId": "2088902457052615",
10 "bankType": null,
11 "clientDiscountAmt": "0",
12 "weOrderNo": "2020121422001452615717639231",
13 "serverDiscountAmt": "0",
14 "tradeState": "SUCCESS",
15 "lklOrderNo": "20201214110113200266211401190905",
16 "settlementTotalFee": null
17 },
18 "rnd": null,
19 "retCode": "000000",
20 "retMsg": "交易成功",
21 "cmdRetCode": "GLOBAL_SUCCESS",
22 "timestamp": 1607917705503,
23 "reqId": "baff59de4694438ca9089862253517a5"
24}
请求URL:
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_order_refund 生产环境:https://s2.lakala.com/labs/txn/labs_order_refund
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
mercId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
termNo | 终端号 | M | String(32) | 拉卡拉分配的终端号 |
refundOrderId | 商户退款单号 | M | String(32) | 商户退款单号,若上送需保证商户退款单号唯一,不可重复退款 |
ornOrderId | 原商户订单号 | C | String(32) | 原扫码交易上送的订单号 |
amount | 退款金额 | M | String(12) | 单位分 |
lklOrderNo | 原拉卡拉商户订单号 | C | String(32) | 原拉卡拉生成的交易流水 |
lklOrderNo和ornOrderId 必须送一个
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retcode | 响应码 | C | String(32) | |
message | 响应信息 | C | String(32) | |
retAmt | 退款金额 | C | String(12) | 单位分 |
refundOrderId | 商户退款单号 | C | String(32) | 如果请求中携带,则返回 |
refundLklOrderNo | 拉卡拉退款单号 | C | String(32) | 拉卡拉退款单号 |
xxxxxxxxxx
131{
2 "reqData": {
3 "mercId": "822100050210643",
4 "termNo": "47846848",
5 "amount": "1",
6 "ornOrderId": "202760072915yhl3l987kl",
7 "refundOrderId": "567890984476678"
8 },
9 "ver": "1.0.0",
10 "timestamp": "1541589957000",
11 "reqId": "baff59de4694438ca9089862253517a5",
12 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
13}
xxxxxxxxxx
171{
2 "respData": {
3 "retcode":"BBS00000",
4 "message": "订单已退款",
5 "retAmt": "1",
6 "refundOrderId": "567890984476678",
7 "refundLklOrderNo": "20200729110113201266161202870208"
8 },
9 "timestamp": 1596010956013,
10 "rnd": null,
11 "ver": "1.0.0",
12 "reqId": "baff59de4694438ca9089862253517a5",
13 "respId": null,
14 "retCode": "000000",
15 "retMsg": "交易成功",
16 "cmdRetCode": "GLOBAL_SUCCESS"
17}
错误码 | 描述 | 备注 |
---|---|---|
000000 | 交易成功 | - |
请求URL:
测试环境:https://test.wsmsd.cn/sit/labs/txn/labs_dycode_create 生产环境:https://s2.lakala.com/labs/txn/labs_dycode_create
字段名称 | 内容 | 是否必输 | 最大长度 | 备注 |
---|---|---|---|---|
mercId | 商户号 | 是 | String(32) | |
termNo | 终端号 | 是 | String(32) | |
merName | 商户名称 | 是 | String(128) | |
codeValidPeriod | 二维码有效期 | 是 | int | 二维码的有效时间,单位秒,区间为60秒-300秒 |
orderField | 订单域 | 是 | object | |
txnField | 交易域 | 否 | object |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
settleType | 结算类型 | 否 | String(2) | 0:正常结算 1:暂缓结算 |
notifyUrl | 通知地址 | 否 | String(256) | 接收平台通知的URL,需给绝对路径,255字符内格式,确保平台能通过互联网访问该地址,若上送后台按异步通知机制通知交易结果 |
appId | 子商户公众账号ID | 否 | String(32) | 微信分配的子商户公众账号ID,sub_appid(即微信小程序支付-71、公众号支付-51),需要使用某个商家的APPID时此参数必传,只对微信支付有效 |
attach | 附加域 | 否 | String(128) | 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据。商户定制字段,直接送到账户端。 |
goodsDetail | 商品详情 | 否 | String(128) | 订单包含的商品列表信息,Json格式 |
goodsTag | 订单优惠标记 | 否 | String(32) | 订单优惠标记,微信平台配置的商品标记,用于优惠券或者满减使用,accountType为WECHAT时,可选填此字段 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
amount | 金额 | 是 | String(12) | 金额,单位:分 |
exterOrderSource | 订单来源 | 是 | String(16) | |
exterMerOrderNo | 外部商户订单号 | 是 | String(32) | 同一个订单来源,外部商户订单号不可重复 |
subject | 订单标题 | 是 | String(40) | 账户端限制 |
orderRemark | 备注 | 否 | String(50) |
字段名称 | 内容 | 是否必输 | 备注 |
---|---|---|---|
qrCode | 二维码信息 | 是 | 商户收款二维码信息 |
qrCodeUrl | 二维码地址 | 是 | 二维码地址 |
codeExpiredTime | 有效期 | 是 | Unix时间戳。13位。 |
xxxxxxxxxx
131{
2 "reqData":{
3 "mercId": "822290070111135",
4 "termNo": "29034705",
5 "merName": "BPS商户名称",
6 "codeValidPeriod": "60",
7 "orderField":{"amount":"123","subject":"订单标题","exterMerOrderNo":"2020112513522260","description":"订单描述","exterOrderSource":"OS10","orderRemark":"订单备注"},
8 "txnField":{"settleType":"0","appId":"0","notifyUrl":"http://abc.com","attach":"附加域","goodsDetail":"0","goodsTag":"0"}
9},
10 "ver": "1.0.0",
11 "timestamp": "1541589957000",
12 "reqId": "baff59de4694438ca9089862253517a5"
13}
xxxxxxxxxx
151{
2 "respData": {
3 "qrCode": "A11DA22943B3A6A5BA4EE994",
4 "qrCodeUrl": "http://q.huijingcai.top/r/A11DA22943B3A6A5BA4EE994",
5 "codeExpiredTime": "60"
6 },
7 "timestamp": 1606899198562,
8 "rnd": null,
9 "ver": "1.0.0",
10 "reqId": "baff59de4694438ca9089862253517a5",
11 "respId": null,
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "cmdRetCode": "GLOBAL_SUCCESS"
15}
请求URL:
测试环境:https://test.wsmsd.cn/sit/saas/query/wx_openid_query 生产环境:https://s2.lakala.com/saas/query/wx_openid_query
字段名称 | 内容 | 是否必输 | 最大长度 | 备注 |
---|---|---|---|---|
mercId | 商户号 | 是 | String(32) | |
termNo | 终端号 | 是 | String(32) | |
authCode | 微信付款码 | 是 | String(128) | 微信:付款码 |
subAppid | 微信子商户公众号id | 否 | String(128) |
字段名称 | 内容 | 是否必输 | 备注 |
---|---|---|---|
openId | 微信openId | 是 | |
subOpenId | 微信subOpenId | 否 |
xxxxxxxxxx
121{
2 "reqData": {
3 "mercId": "822290070111135",
4 "termNo": "29034705",
5 "authCode": "136519690623734145",
6 "subAppid":""
7 },
8 "ver": "1.0.0",
9 "timestamp": "1541589957000",
10 "reqId": "baff59de4694438ca9089862253517a5",
11 "termExtInfo":{"termLoc":"+155621.316,-125622.12"}
12}
xxxxxxxxxx
131{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "openId": "oUpF8uBegFLdKvbbII8hXQKSZHy0",
7 "subOpenId": ""
8 },
9 "retCode": "000000",
10 "retMsg": "交易成功",
11 "timestamp": 1611136188637,
12 "ver": "1.0.0"
13}
请求URL:
测试环境:https://test.wsmsd.cn/sit/saasmgt/submer/query 生产环境:https://s2.lakala.com/saasmgt/submer/query
字段名称 | 内容 | 是否必输 | 最大长度 | 备注 |
---|---|---|---|---|
barcodeMerchantNo | 822商户号 | 是 | String(32) | 822290059470417 |
terminalNo | 终端号 | 否 | String(32) | 终端号与渠道号二选一 |
businessOrgNo | 从业机构号 | 是 | String(32) | 1900009211 |
accessId | 渠道号 | 否 | String(100) | 渠道号与终端号二选一 |
tradeMode | 钱包类型 | 是 | String(32) | 枚举值: 微信:WECHAT 支付宝:ALIPAY |
备注:
因为银联AT微信的子商户号有多个,需要根据accessId来区分
字段名称 | 内容 | 是否必输 | 备注 |
---|---|---|---|
barcodeMerchantNo | 商户号 | 否 | |
terminalNo | 终端号 | 否 | |
businessOrgNo | 从业机构号 | 否 | |
accessId | 渠道号 | 否 | |
subMerchantNo | 账户端子商户号 | 否 | |
tradeMode | 钱包类型 | 否 | |
serverId | 账户端ID | 否 |
xxxxxxxxxx
121{
2 "reqData":{
3 "barcodeMerchantNo":"822290059470417",
4 "terminalNo":"47782155",
5 "businessOrgNo":"1900009211",
6 "accessId":"24006513",
7 "tradeMode":"WECHAT"
8 },
9 "ver":"1.0.0",
10 "timestamp":"1541589957000",
11 "reqId":"baff59de4694438ca9089862253517a5"
12}
xxxxxxxxxx
181{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "accessId": "24006513",
7 "terminalNo": "47782155",
8 "barcodeMerchantNo": "822290059470417",
9 "subMerchantNo": "314448745",
10 "tradeMode": "WECHAT",
11 "serverId": "UNION-WX",
12 "businessOrgNo": "1900009211"
13 },
14 "retCode": "000000",
15 "retMsg": "交易成功",
16 "timestamp": 1618207567252,
17 "ver": "1.0.0"
18}
应答码 | 说明 |
---|---|
BPS10028 | 主扫支付失败 |
BPS10029 | 交易支付中,请稍后查询 |
BPS10030 | 被扫支付失败 |
BPS10031 | 被扫支付撤销失败 |
BPS10032 | 原订单不存在 |
BPS10033 | 退款失败 |
BPS10034 | 退款处理中 |
BPS10035 | 退款查询失败 |
BPS10036 | 订单关闭失败 |
BPS10037 | 订单查询失败 |
BPS10038 | 获取userid失败 |
BPS10039 | 微信刷脸授权码获取失败 |
BPS10040 | 订单号重复 |
应答码 | 说明 |
---|---|
BBS11112 | 交易结果未知 |
BBS11105 | 用户支付中 |
BBS00001 | 系统异常 |
BBS00002 | 系统功能暂未开放 |
BBS00100 | 网络请求失败 |
BBS00101 | 网络请求超时 |
BBS11000 | 参数校验失败 |
BBS11100 | 通道类型未知 |
BBS11101 | 交易类型未知 |
BBS11102 | 交易钱包类型未知 |
BBS11200 | 验签失败 |
BBS11103 | 账户端处理失败 |
BBS11104 | 账户端返回数据格式错误 |
BBS11106 | 未查到参数 |
BBS11107 | 交易不存在 |
BBS11108 | 未找到路由 |
BBS11196 | 路由信息不存在 |
BBS11110 | 不允许做该交易 |
BBS11111 | 订单号已存在 |
BBS11112 | 交易结果未知 |
BBS11113 | D0商户当前不允许做反交易 |
BBS11114 | 订单不存在 |
BBS11170 | 机构信息不存在 |
BBS11172 | 商户信息不存在 |
BBS11173 | 下游商户【外部商户】信息不存在 |
BBS11174 | 子商户信息不存在 |
BBS11199 | 微信子商户信息不存在 |
BBS11198 | 支付宝子商户信息不存在 |
BBS11197 | 银联二维码子商户信息不存在 |
BBS11175 | 未查到子商户 |
BBS11176 | 商户终端信息不存在 |
BBS11177 | 该终端不存在 |
BBS11178 | 该终端卡应用信息不存在 |
BBS11181 | bmcp机构已关闭 |
BBS11182 | 交易权限已关闭 |
BBS11183 | 交易权限未开通 |
BBS11184 | 该商户已停用 |
BBS11185 | 该终端已停用 |
BBS11186 | 退款交易扣账发清结算失败 |
BBS11187 | 退款交易扣账发清结算异常 |
BBS11109 | 交易金额超过单笔限额 |
BBS11109 | 已超单日累计限额 |
BBS11109 | 已超单月累计限额 |
应答码 | 说明 |
---|---|
LABS00000 | 成功 |
LABS00200 | 用户支付中 |
LABS00201 | 交易结果未知 |
LABS00202 | 交易系统处理失败 |
LABS10000 | 请求参数校验失败 |
LABS10001 | 订单号必传 |
LABS10100 | 该交易暂不支持退货 |
LABS10102 | 该交易暂不支持撤销 |
LABS10103 | 该交易暂不支持关单 |
LABS10104 | 订单已退货 |
LABS10200 | 流水不存在 |
LABS10201 | 流水号已存在 |
LABS10202 | 订单号不存在 |
LABS10203 | 商户订单不存在 |
LABS10204 | 商户订单已使用 |
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
请求签名 | 是 |
响应签名 | 是 |
需要BASE64编码 | 否 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/sit/mrss/ledger/ |
生产环境URL | https://s2.lakala.com/mrss/ledger/ |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
timestamp | 时间戳 | C | Long | Unix时间戳。13位 |
rnd | 随机数 | C | String(32) | 随机数 |
ver | 版本号 | C | String(6) | 1.0.0 |
reqId | 请求序列号 | C | String(32) | - |
reqData | 请求参数 | M | Object |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retCode | 返回业务代码 | M | String(8) | 返回业务代码(000000为成功,其余按照错误信息来定) |
retMsg | 返回业务代码描述 | M | String(50) | 返回业务代码描述 |
timestamp | 时间戳 | M | Long | Unix时间戳,13位 |
rnd | 随机数 | C | String(32) | 随机数 |
reqId | 请求序列号 | C | String(32) | 请求序列号 |
respId | 响应序列号 | C | String(32) | 响应序列号 |
ver | 版本号 | M | String(6) | 版本号 |
respData | 响应参数 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
用于分账完成时请求。
请求URL:
测试环境:https://test.wsmsd.cn/sit/mrss/ledger/settle_ledger 生产环境:https://s2.lakala.com/mrss/ledger/settle_ledger
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
tranDate | 交易日期 | M | String(8) | 20201106 |
tranTime | 交易时间 | M | String(6) | 132455 |
ledgerType | 完成类型 | M | String(6) | 01:完成,02:完成回退 |
instId | 机构号 | M | String(32) | |
logdat | 拉卡拉订单日期 | C | String(8) | 原交易订单日期,完成回退时不必输 |
logNo | 拉卡拉订单流水号 | C | String(32) | |
txnAmt | 完成总额 | M | String(15) | 完成总金额 |
ledgerTranSid | 完成请求流水id | M | String(32) | 完成发起方请求唯一标识 |
oledgerTranSid | 原完成请求流水id | M | String(32) | 完成回退时必输 |
sendMerId | 完成发起商户号 | C | String(32) | 完成回退时不必输 |
sendTermId | 完成发起终端号 | C | String(32) | 完成回退时不必输 |
busyType | 业务类型 | M | String(4) | 0:完成到本身,1:完成到多个人 |
ruleType | 完成规则 | M | String(2) | 0:按照指定金额完成 1:按照比例完成 |
revcData | 完成接收商终集合 | M | JSON | revcData json 必输 完成接收商终 包含发起商户本身金额;按照比例会校验list所有数据比例之和是否为1;按照金额会校验list数据金额之和是否为完成总额 |
notifyUrl | 通知地址 | M | String(128) | 通知用url |
merKey | 商户密钥 | M | String(512) | |
verifycode | 验证码 | M | String(512) | 清结算验证身份使用 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
revcMerId | 完成接收商户号 | M | String(32) | |
revcTermId | 完成接收终端号 | M | String(32) | |
ledgerPercent | 完成百分比例 | C | String(8) | 完成规则为1(按比例),该值必输 |
txnAmt | 完成金额 | C | String(15) | 单位分;完成规则为0(按金额),该值必输 |
xxxxxxxxxx
121[
2{
3“revcMerId”: “822200159941782”,
4“revcTermId”: “47761117”,
5“ledgerPercent”: “0.15”
6},
7{
8“revcMerId”: “822200159941782”,
9“revcTermId”: “47761117”,
10“ledgerPercent”: “0.15”
11}
12]
xxxxxxxxxx
121[
2{
3“revcMerId”: “822200159941782”,
4“revcTermId”: “47761117”,
5“txnAmt”: “100”
6},
7{
8“revcMerId”: “822200159941782”,
9“revcTermId”: “47761117”,
10“txnAmt”: “100”
11}
12]
说明1:如果商户A发起结算指令,将资金结算给自己,则“完成发起商户号”和“完成发起终端号”都填商户A自己的商户号和终端号,revcData中也要填写自己相关的 json信息。 说明2、如果商户A发起分账指令,revcData中必须要填写自己的信息,满足比例和为1或者金额总和为订单总金额的校验。 说明3:如果商户A发起担保完成指令,则“完成规则”必须使用“0-指定金额完成”
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
code | 响应码 | C | String(32) | 0000:受理成功 0001:必传值为空 0002:请求流水处理中 –完成交易 0003:原暂缓交易已完成处理 –完成交易请求和兜底发起的判定 0004:原请求流水状态不符 –完成回退 0005:查询失败,原交易不存在 0006:原暂缓交易状态异常:计费失败– 可以重试 0007:原暂缓交易状态异常:记账失败 –可以重试 0008:转入list数量超限 0009: 转入list商终不存在 0010:商终不存在 0011:余额不足 0012:分账金额不符合最大分账比例 0013:商户未开启分账功能 0014:完成分账,分账金额超过交易总金额 0015:累计回退金额超过原分账金额 0016:完成明细入库异常 0099: 系统异常 1000:处理成功 |
msg | 描述 | C | String(100) |
xxxxxxxxxx
381{
2 "reqData": {
3 "tranDate": "20201127",
4 "tranTime": "111310",
5 "ledgerType": "01",
6 "logdat": "20201127",
7 "logNo": "20112751190001",
8 "txnAmt": "100000",
9 "ledgerTranSid": "1223232YLH232351",
10 "sendMerId": "822290090010229",
11 "sendTermId": "91009674",
12 "busyType": "1",
13 "instId": "111",
14 "notifyUrl": "xxx",
15 "ruleType": "1",
16 "verifycode":"A",
17 "merKey":"m/d06AlnkyJ2h+J4Ou7dXQ",
18 "revcData": [
19 {
20 "revcMerId": "822324459940962",
21 "revcTermId": "47863109",
22 "ledgerPercent": "0.6"
23 },
24 {
25 "revcMerId": "822290090010229",
26 "revcTermId": "91009674",
27 "ledgerPercent": "0.4"
28 }
29 ]
30},
31 "appid": "1",
32 "sign": "B68960AF858C0681010A4D24F505E57D",
33 "cmd": "SETTLE_LEDGER",
34 "termExtInfo": {
35 "termLoc": "+155621.316,-125622.12"
36 },
37 "token": "43e99b4a38a748d3932fca9382404b41"
38}
xxxxxxxxxx
161{
2 "respData": {
3 "code": "0000",
4 "msg": ""
5 },
6 "sign": null,
7 "timestamp": 1606441918784,
8 "rnd": null,
9 "ver": "1.0.0",
10 "reqId": null,
11 "respId": null,
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "cmdRetCode": "GLOBAL_SUCCESS",
15 "appid": "1"
16}
请求URL:
测试环境:https://test.wsmsd.cn/sit/mrss/ledger/settle_result_query 生产环境:https://s2.lakala.com/mrss/ledger/settle_result_query
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
instId | 机构号 | M | String(32) | |
queryId | 查询流水号 | M | String(32) | |
ledgerTranSid | 分账请求流水id | M | String(32) | 分账发起方请求唯一标识 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
code | 响应编码 | String(10) | 0002:查询成功 0003:查询失败,交易不存在 | |
msg | 响应信息 | String(62) | ||
data | 分账明细 | json |
属性 | 说明 | 类型 | 备注 |
---|---|---|---|
instId | 机构号 | String(32) | |
ledgerTranSid | 分账请求流水id | String(32) | |
txnStat | 状态 | String(8) | 00:完成受理中 01:完成失败 02:分账成功 |
sendMerId | 发起商户号 | String(32) | |
sendTermId | 发起终端号 | String(32) | |
tranDate | 交易日期 | String(8) | 20201106 |
tranTime | 交易时间 | String(6) | 132455 |
revcData | 完成接收商终list | json | 包含发起商户本身金额 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
revcMerId | 完成接收商户号 | M | String(32) | |
revcTermId | 完成接收终端号 | M | String(32) | |
txnAmt | 完成金额 | M | String(15) | 充值金额,单位分,分账金额 |
finishDate | 完成日期 | M | String(8) |
xxxxxxxxxx
141[
2 {
3 “revcMerId”: “822200159941782”,
4 “revcTermId”: “47761117”,
5 “txnAmt”: “100”,
6 “finishDate”: “20201105”
7 },
8 {
9 “revcMerId”: “822200159941782”,
10 “revcTermId”: “47761117”,
11 “txnAmt”: “100”,
12 “finishDate”: “20201105”
13 }
14]
xxxxxxxxxx
141{
2 "reqData": {
3 "instId": "11111",
4 "queryId": "1",
5 "ledgerTranSid": "1223232YLH232351"
6 },
7 "appid": "1",
8 "sign": "41B38FDC85418C03C08D5B1FFD6101DC",
9 "cmd": "SETTLE_RESULT_QUERY",
10 "termExtInfo": {
11 "termLoc": "+155621.316,-125622.12"
12 },
13 "token": "43e99b4a38a748d3932fca9382404b41"
14}
xxxxxxxxxx
391{
2 "respData": {
3 "code": "0000",
4 "msg": "查询成功",
5 "data": {
6 "instId": "111",
7 "ledgerTranSid": "1223232YLH232351",
8 "txnStat": "02",
9 "sendMerId": "822290090010229",
10 "sendTermId": "91009674",
11 "tranDate": "20201127",
12 "tranTime": "111310",
13 "revcData": [
14 {
15 "revcMerId": "822324459940962",
16 "revcTermId": "47863109",
17 "finishDate": "20201127095607",
18 "txnAmt": "60000"
19 },
20 {
21 "revcMerId": "822290090010229",
22 "revcTermId": "91009674",
23 "finishDate": "20201127095607",
24 "txnAmt": "40000"
25 }
26 ]
27 }
28 },
29 "sign": null,
30 "timestamp": 1606442643486,
31 "rnd": null,
32 "ver": "1.0.0",
33 "reqId": null,
34 "respId": null,
35 "retCode": "000000",
36 "retMsg": "交易成功",
37 "cmdRetCode": "GLOBAL_SUCCESS",
38 "appid": "1"
39}
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
instId | 机构号 | M | String(32) | |
ledgerTranSid | 分账请求流水id | M | String(32) | |
status | 状态 | M | String(8) | 00:完成受理中 01:完成失败 02:分账成功 |
sendMerId | 完成发起商户号 | M | String(32) | |
sendTermId | 完成发起终端号 | M | String(32) | |
sendDate | 结果通知日期 | M | String(8) | 20201106 |
sendTime | 结果通知时间 | M | String(6) | 132455 |
mac | 验证码 | M | String(512) | |
revcData | 完成接收商终list | M | json |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
code | 响应编码 | M | String(10) | |
errmsg | 响应信息 | M | String(62) |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
revcMerId | 完成接收商户号 | M | String(32) | |
revcTermId | 完成接收终端号 | M | String(32) | |
finishDate | 完成日期 | M | String(8) | |
liqAmt | 结算金额 | C | String(15) | 单位分;完成规则为0(按金额),该值必输 |
xxxxxxxxxx
241{
2 "instId":"20201127",
3 "ledgerTranSid":"173300",
4 "mac":"1223232YLH232351",
5 "revcData":[
6 {
7 "finishDate":"20201105",
8 "liqAmt":"100",
9 "revcMerId":"822200159941782",
10 "revcTermId":"47761117"
11 },
12 {
13 "finishDate":"20201105",
14 "liqAmt":"100",
15 "revcMerId":"822200159941782",
16 "revcTermId":"47761117"
17 }
18 ],
19 "sendDate":"20201130",
20 "sendMerId":"MZHFEFSA",
21 "sendTermId":"1253",
22 "sendTime":"2000",
23 "status":"02"
24}
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
数据格式 | JSON数据格式 |
请求签名 | 是 |
响应签名 | 是 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/xx |
生产环境URL | https://s2.lakala.com/xx |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
timestamp | 时间戳 | C | Long | Unix时间戳。13位 |
rnd | 随机数 | C | String(32) | 随机数 |
ver | 版本号 | C | String(6) | 1.0.0 |
reqId | 请求序列号 | C | String(32) | - |
reqData | 请求参数 | M | Object |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retCode | 返回业务代码 | M | String(8) | 返回业务代码(000000为成功,其余按照错误信息来定) |
retMsg | 返回业务代码描述 | M | String(50) | 返回业务代码描述 |
timestamp | 时间戳 | M | Long | Unix时间戳,13位 |
rnd | 随机数 | C | String(32) | 随机数 |
reqId | 请求序列号 | C | String(32) | 请求序列号 |
respId | 响应序列号 | C | String(32) | 响应序列号 |
ver | 版本号 | M | String(6) | 版本号 |
respData | 响应参数 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
编号 | 名称 |
---|---|
642 | 百货、中介、培训、景区门票等 |
645 | 交通运输售票 |
646 | 电气缴费 |
647 | 政府类 |
648 | 便民类 |
649 | 公立医院、公立学校、慈善 |
650 | 宾馆餐饮娱乐类 |
651 | 房产汽车类 |
652 | 批发类 |
653 | 超市加油类 |
654 | 一般类商户 |
655 | 三农商户 |
POS类型名称 | POS类型 | 备注 |
---|---|---|
传统POS | GENERAL_POS | |
智能POS | SUPER_POS | |
蓝精灵 | BLUE_WIZARD | |
专业化扫码 | WECHAT_PAY | |
收钱吧扫码 | SQB_SCAN_CODE | |
收钱吧码牌 | SQB_PAPER_CODE | |
收钱吧桌码 | SQB_DESK_CODE | |
新云小店 | CLOUD_STORE_NEW | 增商专用 |
云分销 | CLOUD_DISTRIBUTION | |
云分销线上 | CLOUD_DISTRIBUTION_CB | |
云小店线上 | CLOUD_STORE_CB | |
云小店线下 | CLOUD_STORE_BC | |
云小店非收银机 | CLOUD_STORE_BC_NOTLKL | |
收款码(原惠码)线上 | HM_CB | |
收款码(原惠码)线下 | HM_BC |
代码 | 名称 | 划款时间 | 描述 |
---|---|---|---|
T+1 | T+1结算 | T日5:30-9:30 | 4 |
T+1+N | T+1普通结算批次 | T日12:00-15:00 | 78 |
D+1+N | D+1普通结算批次 | T日12:00-15:00 | 78 |
W_T+9999 | 喔噻T+9999不结算批次 | 提款模式 | 25 喔噻专用 |
D+1 | 收单D+1结算批次 | D日05:30左右 | 18 |
D1+24 | D1+24结算批次 | D日11:00左右 | 58 乐惠专用 |
T+9999 | 不结算批次 | 不划款 | 10 |
类型码名称:larIdType、accIdType
证件类型名称 | 代码 | 备注 |
---|---|---|
身份证 | 01 | |
护照 | 02 | |
港澳通行证 | 03 | |
台胞证 | 04 | |
其它证件 | 99 |
类型码名称:feeRateTypeCode
类型名称 | 代码 | 备注 |
---|---|---|
银联借记卡 | 300 | |
银联贷记卡 | 301 | |
微信 | 302 | |
支付宝 | 303 | |
翼支付 | 306 | |
银联二维码借记卡 | 314 | |
银联二维码贷记卡 | 315 | |
支付账户 | 319 | |
微信线上 | 400 | |
微信刷脸 | 307 | |
支付宝刷脸 | 308 | |
云闪付借记-优惠 | 411 | |
云闪付贷记-优惠 | 412 | |
银联二维码借记-优惠 | 413 | |
银联二维码贷记-优惠 | 414 |
类型码名称:limitTypeCode
类型名称 | 代码 | 备注 |
---|---|---|
银行借记卡 | BANK_DEBIT_CARD | |
银行贷记卡 | BANK_CREDIT_CARD | |
扫码 | QR_CODE_CARD | |
外卡 | WILD_CARD | |
联机退货 | RETURNS_ONLINE | |
纸码 | PAPER_CODE |
接入方通过开放平台新增商户进件
请求地址:
测试环境:https://test.wsmsd.cn/sit/mms/openApi/addMer 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
posType | 必传 | String | 32 | 进件POS类型 —按接入系统做控制,参见【POS类型字典表】 | GENERAL_POS |
orgCode | 必传 | String | 32 | 机构代码 | |
merRegName | 必传 | String | 80 | 商户注册名称 | |
merBizName | 可传 | String | 80 | 商户经营名称 | 为空时,同商户注册名称 |
merRegDistCode | 必传 | String | 8 | 商户地区代码 | 地区代码,参看地区文档 |
merRegAddr | 必传 | String | 80 | 商户详细地址 | 去除省,市,区后的详细地址 |
mccCode | 必传 | String | 8 | 商户MCC编号 | 银联商户类别代码 |
merBlisName | 可传 | String | 80 | 营业执照名称 | 小微商户可不传,其它必传 |
merBlis | 可传 | String | 40 | 营业执照号 | 小微商户可不传,对公进件必传,且不可与法人证件相同 |
merBlisExpDt | 可传 | String | 10 | 营业执照有效期 | 格式(yyyy-MM-dd) |
merBusiContent | 必传 | String | 64 | 商户经营内容 | 参看【经营内容字典表】文档 |
larName | 必传 | String | 20 | 商户法人姓名 | |
larIdType | 必传 | String | 8 | 法人证件类型 | 支持其他证件类型,见参数字典 |
larIdcard | 必传 | String | 40 | 法人身份证号码 | |
larIdcardExpDt | 必传 | String | 10 | 法人身份证有效期 yyyy-MM-dd | |
merContactMobile | 必传 | String | 20 | 商户联系人手机号码 | |
merContactName | 必传 | String | 32 | 商户联系人 | |
shopName | 可传 | String | 80 | 网点名称 | 不填,取商户注册名称 |
shopDistCode | 可传 | String | 8 | 网点地址区划代码 | 不填,取商户地区代码 |
shopAddr | 可传 | String | 80 | 网点详细地址 | 不填,取商户详细地址 |
shopContactName | 可传 | String | 32 | 网点联系人名称 | 不填,取商户联系人姓名 |
shopContactMobile | 可传 | String | 20 | 网点联系人手机号 | 不填,取商户联系人手机号码 |
openningBankCode | 必传 | String | 20 | 结算账户开户行号 | |
openningBankName | 必传 | String | 40 | 结算账户开户行名称 | |
clearingBankCode | 必传 | String | 20 | 结算账户清算行号 | |
acctNo | 必传 | String | 40 | 结算账户账号 | |
acctName | 必传 | String | 40 | 结算账户名称 | |
acctTypeCode | 必传 | String | 8 | 结算账户性质 | 57 对公 58 对私 |
settlePeriod | 必传 | String | 8 | 结算周期 | |
acctIdType | 可选 | String | 8 | 结算人证件类型 | 为空时,判断为同法人 |
acctIdcard | 可选 | String | 40 | 结算人证件号码 | 为空时,判断为同法人 |
acctIdDt | 可选 | String | 10 | 结算人证件有效期 | 为空时,判断为同法人 |
devSerialNo | 可选 | String | 64 | 终端设备序列号 | |
devTypeName | 可选 | String | 32 | 设备型号 | |
termVer | 可选 | String | 32 | 终端版本号 | |
retUrl | 必传 | String | 64 | 回调地址 | url |
feeData | 必传 | Set | 集合 | 费率信息集合 | 参看下方【费率信息】 |
fileData | 可选 | Set | 附件信息集合 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
feeRateTypeCode | 必传 | String | 费率类型 | 参见【费率类型字典表】 |
feeRateTypeName | 必传 | String | 费率类型名称 | 银行卡借记卡 |
feeRatePct | 必传 | String | 手续费率(%) | 0.6 |
feeUpperAmtPcnt | 可选 | String | 单笔交易手续费封顶 | 默认不封顶,单位(元) |
feeLowerAmtPcnt | 可选 | String | 单笔交易手续费保低 | 默认无保底,单位(元) |
feeRateStDt | 可选 | String | 手续费生效日期 | 默认为进件日期 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
attFileId | 必传 | String | 文件编号 附件上传接口返回的编号 | |
attType | 必传 | String | 附件类型 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID |
xxxxxxxxxx
611{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021031212000012345678",
5 "posType":"SUPER_POS",
6 "orgCode":"1",
7 "merRegName":"开放平台商户进件注册名称",
8 "merBizName":"开放平台商户进件经营名称",
9 "merRegDistCode":"290012",
10 "merRegAddr":"五星路102号",
11 "mccCode":"7011",
12 "merBusiContent":"640",
13 "larName":"张三丰",
14 "larIdType":"01",
15 "larIdcard":"33088119690117459X",
16 "larIdcardExpDt":"2051-01-10",
17 "merContactMobile":"15878559969",
18 "merContactName":"张三丰",
19 "settlePeriod":"T+1",
20 "openningBankCode":"102100000030",
21 "openningBankName":"中国工商银行股份有限公司北京市分行营业部",
22 "clearingBankCode":"102100099996",
23 "acctNo":"6212260200102400000",
24 "acctName":"仲涛飘",
25 "acctTypeCode":"58",
26 "acctIdcard":"33088119690117459X",
27 "devSerialNo":"yp13293921932131",
28 "devTypeName":"V8",
29 "termVer":"1.0",
30 "retUrl":"http://10.177.93.135:8082/notify",
31 "feeData":[
32 {
33 "feeRateTypeCode":"300",
34 "feeRatePct":"0.38",
35 "feeUpperAmtPcnt":"20",
36 "feeLowerAmtPcnt":"10"
37 },
38 {
39 "feeRateTypeCode":"301",
40 "feeRatePct":"0.58"
41 },
42 {
43 "feeRateTypeCode":"302",
44 "feeRatePct":"0.48"
45 },
46 {
47 "feeRateTypeCode":"303",
48 "feeRatePct":"0.48"
49 }
50 ],
51 "fileData":[
52 {
53 "attType":"ID_CARD_FRONT",
54 "attFileId":"G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
55 }
56 ]
57 },
58 "ver":"1.0.0",
59 "timestamp":"1541589957000",
60 "reqId":"baff59de4694438ca9089862253517a5"
61}
xxxxxxxxxx
131{
2 "cmdRetCode": "GLOBAL_SUCCESS",
3 "reqId": "",
4 "respData": {
5 "orderNo": "2021031212000012345678",
6 "orgCode": "1",
7 "contractId": "202103152502679606"
8 },
9 "retCode": "000000",
10 "retMsg": "交易成功",
11 "timestamp": 1615793059933,
12 "ver": "1.0.0"
13}
四方机构通过开放平台对原有的商户增加网点、增加终端进件。一次接口调用只能增一种类型(posType)的终端。
新增网点,终端详情的填写内容都新增在新的网点下。(注:此时shopId和termNo的值无意义)。
不新增网点(shopData数据为空)
请求地址:
测试环境:https://test.wsmsd.cn/sit/mms/openApi/addTerm 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
posType | 必传 | String | 32 | 进件POS类型 —按接入系统做控制,参见【POS类型字典表】 | GENERAL_POS |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 必传 | String | 32 | 商户内部商户号(拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准) | 4002019111800000020 |
merCupNo | 必传 | String | 32 | 银联商户号 | 82229005411000A |
shopData | 可选 | Object | 1 | 新增网点 | |
shopName | 可选 | String | 64 | 网点名称 | |
shopDistCode | 可选 | String | 16 | 网点地址区划代码 | |
shopAddr | 可选 | String | 128 | 网点详细地址 | |
shopContactMobile | 可选 | String | 32 | 网点联系人手机号 | |
shopContactName | 可选 | String | 18 | 网点门店联系人名称 | |
termData | 必传 | Object | 终端详情 | ||
shopId | 可选 | String | 32 | 网点ID | |
termNum | 必传 | String | 8 | 终端数量(1-5) 最大5个终端 | 1 |
termNo | 可选 | String | 32 | 终端号 | |
devSerialNo | 可选 | String | 64 | 终端设备序列号 | |
devTypeName | 可选 | String | 32 | 设备型号 | |
termVer | 可选 | String | 32 | 终端版本号 | |
retUrl | 必传 | String | 64 | 回调地址 | http:// |
feeData | 必传 | Set | 集合 | 费率信息集合 | 参看下方【费率信息】 |
fileData | 可选 | Set | 附件信息集合 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
feeRateTypeCode | 必传 | String | 费率类型 | 参见【费率类型字典表】 |
feeRateTypeName | 必传 | String | 费率类型名称 | 银行卡借记卡 |
feeRatePct | 必传 | String | 手续费率(%) | 0.6 |
feeUpperAmtPcnt | 可选 | String | 单笔交易手续费封顶 | 默认不封顶,单位(元) |
feeLowerAmtPcnt | 可选 | String | 单笔交易手续费保低 | 默认无保底,单位(元) |
feeRateStDt | 可选 | String | 手续费生效日期 | 默认为进件日期 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
attFileId | 必传 | String | 文件编号 附件上传接口返回的编号 | |
attType | 必传 | String | 附件类型 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID |
xxxxxxxxxx
471{
2 "version": "1.0",
3 "orderNo": "2021020112000012345678",
4 "merInnerNo":"4002021030402220100",
5 "posType": "SUPER_POS",
6 "orgCode": "1",
7 "retUrl": "http://10.177.93.135:8082/notify",
8 "shopData": {
9 "shopName": "开放名称增网网点名称",
10 "shopDistCode": "290012",
11 "shopAddr": "五星路103号",
12 "shopContactName": "李四",
13 "shopContactMobile": "15878559969"
14 },
15 "termData": {
16 "devSerialNo": "yp13293921932131",
17 "devTypeName": "V8",
18 "termVer": "1.0",
19 "termNum": "1"
20 },
21 "feeData": [
22 {
23 "feeRateTypeCode": "300",
24 "feeRatePct": "0.38",
25 "feeUpperAmtPcnt": "20",
26 "feeLowerAmtPcnt": "10"
27 },
28 {
29 "feeRateTypeCode": "301",
30 "feeRatePct": "0.58"
31 },
32 {
33 "feeRateTypeCode": "302",
34 "feeRatePct": "0.48"
35 },
36 {
37 "feeRateTypeCode": "303",
38 "feeRatePct": "0.48"
39 }
40 ],
41 "fileData": [
42 {
43 "attType": "ID_CARD_FRONT",
44 "attFileId": "G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
45 }
46 ]
47}
xxxxxxxxxx
461{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "merInnerNo":"4002021030402220100",
6 "posType":"SUPER_POS",
7 "orgCode":"1",
8 "retUrl":"http://10.177.93.135:8082/notify",
9 "termData":{
10 "devSerialNo":"yp13293921932131",
11 "devTypeName":"V8",
12 "termVer":"1.0",
13 "termNum":"1",
14 "termNo":"A0100141"
15 },
16 "feeData":[
17 {
18 "feeRateTypeCode":"300",
19 "feeRatePct":"0.51",
20 "feeUpperAmtPcnt":"20",
21 "feeLowerAmtPcnt":"10"
22 },
23 {
24 "feeRateTypeCode":"301",
25 "feeRatePct":"0.52"
26 },
27 {
28 "feeRateTypeCode":"302",
29 "feeRatePct":"0.53"
30 },
31 {
32 "feeRateTypeCode":"303",
33 "feeRatePct":"0.54"
34 }
35 ],
36 "fileData":[
37 {
38 "attType":"ID_CARD_FRONT",
39 "attFileId":"G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
40 }
41 ]
42 },
43 "ver":"1.0.0",
44 "timestamp":"1541589957000",
45 "reqId":"baff59de4694438ca9089862253517a5"
46}
xxxxxxxxxx
131{
2 "cmdRetCode": "GLOBAL_SUCCESS",
3 "reqId": "",
4 "respData": {
5 "orderNo": "2021020112000012345678",
6 "orgCode": "1",
7 "contractId": "202103152502679605"
8 },
9 "retCode": "000000",
10 "retMsg": "交易成功",
11 "timestamp": 1615792888056,
12 "ver": "1.0.0"
13}
接入方通过开放平台变更商户的基本信息。 当termNo为空时,对商户层的结算配置信息做变更。 当termNo不为空时,对业务层的结算配置信息做变更(注:如果业务上原来没有配置结算信息,则不变更业务层结算信息)。 变更网点层信息,必须上传终端号(termNo)。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/changeMer 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 必传 | String | 32 | 商户内部商户号(拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准) | 4002019111800000020 |
merCupNo | 必传 | String | 32 | 银联商户号 | 82229005411000A |
merRegName | 可传 | String | 64 | 商户注册名称 | |
merBizName | 可传 | String | 64 | 商户经营名称 | |
merRegDistCode | 可传 | String | 16 | 商户地区代码 | 地区代码,参看地区文档 |
merRegAddr | 可传 | String | 128 | 商户详细地址 | 去除省,市,区后的详细地址 |
mccCode | 可传 | String | 8 | 商户MCC编号 | 银联商户类别代码 |
merBlisName | 可传 | String | 64 | 营业执照名称 | |
merBlis | 可传 | String | 32 | 营业执照号 | |
merBlisExpDt | 可传 | String | 10 | 营业执照有效期 | 格式(yyyy-MM-dd) |
merBusiContent | 可传 | String | 32 | 商户经营内容 | 参看【经营内容字典表】文档 |
larName | 可传 | String | 32 | 商户法人姓名 | |
larIdcard | 可传 | String | 32 | 法人身份证号码 | |
larIdcardExpDt | 可传 | String | 10 | 法人身份证有效期 yyyy-MM-dd | |
merContactMobile | 可传 | String | 32 | 商户联系人手机号码 | |
merContactName | 可传 | String | 32 | 商户联系人 | |
fileData | 可传 | Set | 集合 | 附件数据 | 参看下方【附件信息集合】 |
termNo | 可传 | String | 32 | 终端号 | |
shopName | 可传 | String | 80 | 网点名称 | 终端号为空时,忽略此项变更 |
shopDistCode | 可传 | String | 8 | 网点地址区划代码 | 终端号为空时,忽略此项变更 |
shopAddr | 可传 | String | 80 | 网点详细地址 | 终端号为空时,忽略此项变更 |
shopContactName | 可传 | String | 32 | 网点联系人名称 | 终端号为空时,忽略此项变更 |
shopContactMobile | 可传 | String | 20 | 网点联系人手机号 | 终端号为空时,忽略此项变更 |
openningBankCode | 可传 | String | 20 | 结算账户开户行号 | 终端号为空时,变更商户层结算信息。 |
openningBankName | 可传 | String | 40 | 结算账户开户行名称 | 终端号为空时,变更商户层结算信息。 |
clearingBankCode | 可传 | String | 20 | 结算账户清算行号 | 终端号为空时,变更商户层结算信息。 |
acctNo | 可传 | String | 40 | 结算账户账号 | 终端号为空时,变更商户层结算信息。 |
acctName | 可传 | String | 40 | 结算账户名称 | 终端号为空时,变更商户层结算信息。 |
acctTypeCode | 可传 | String | 8 | 结算账户性质 | 终端号为空时,变更商户层结算信息。 |
settlePeriod | 可传 | String | 8 | 结算周期 | 终端号为空时,变更商户层结算信息。 |
acctIdType | 可选 | String | 8 | 结算人证件类型 | 终端号为空时,变更商户层结算信息。 |
acctIdcard | 可选 | String | 40 | 结算人证件号码 | 终端号为空时,变更商户层结算信息。 |
acctIdDt | 可选 | String | 10 | 结算人证件有效期 | 终端号为空时,变更商户层结算信息。 |
retUrl | 必传 | String | 64 | 回调地址 | url |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
attFileId | 必传 | String | 文件编号 附件上传接口返回的编号 | |
attType | 必传 | String | 附件类型 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID |
xxxxxxxxxx
291{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "merInnerNo":"4002021030402220100",
6 "orgCode":"1",
7 "retUrl":"http://10.177.93.135:8082/notify",
8 "merRegName":"开放平台商户信息变更注册名称",
9 "merBizName":"开放平台商户信息变更经营名称",
10 "merRegDistCode":"290012",
11 "merRegAddr":"中江路102号",
12 "mccCode":"7011",
13 "merBusiContent":"640",
14 "larName":"诸葛琰",
15 "larIdcard":"330825198604033633",
16 "larIdcardExpDt":"2071-01-10",
17 "merContactMobile":"18878559969",
18 "merContactName":"诸葛琰",
19 "fileData":[
20 {
21 "attType":"ID_CARD_FRONT",
22 "attFileId":"G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
23 }
24 ]
25 },
26 "ver":"1.0.0",
27 "timestamp":"1541589957000",
28 "reqId":"baff59de4694438ca9089862253517a5"
29}
xxxxxxxxxx
141{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "orderNo": "2021020112000012345678",
7 "orgCode": "1",
8 "contractId": "202103152502679607"
9 },
10 "retCode": "000000",
11 "retMsg": "交易成功",
12 "timestamp": 1615793650015,
13 "ver": "1.0.0"
14}
接入方通过开放平台变更商户的费率信息。 如果上送了原来不存在feeRateTypeCode(费率类型代码),将会新增一条费率 如果termNo值为空,将变更商户下的所有费率。 如果termNo值不为空,只变更termNo对应的费率。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/changeFee 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 接入方编码+14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 必传 | String | 32 | 商户内部商户号(拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准) | 4002019111800000020 |
merCupNo | 必传 | String | 32 | 银联商户号 | 82229005411000A |
termNo | 可传 | String | 32 | 银联终端号 | |
retUrl | 必传 | String | 64 | 回调地址 | url |
fileData | 可选 | Set | 附件信息集合 | ||
feeData | 必传 | Set | 费率信息集合 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
feeRateTypeCode | 必传 | String | 费率类型 | 参见【费率类型字典表】 |
feeRateTypeName | 必传 | String | 费率类型名称 | 银行卡借记卡 |
feeRatePct | 必传 | String | 手续费率(%) | 0.6 |
feeUpperAmtPcnt | 可选 | String | 单笔交易手续费封顶 | 默认不封顶,单位(元) |
feeLowerAmtPcnt | 可选 | String | 单笔交易手续费保低 | 默认无保底,单位(元) |
feeRateStDt | 可选 | String | 手续费生效日期 | 默认为进件日期 |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
attFileId | 必传 | String | 文件编号 附件上传接口返回的编号 | |
attType | 必传 | String | 附件类型 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID |
xxxxxxxxxx
381{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "merInnerNo":"4002021030402220100",
6 "orgCode":"1",
7 "retUrl":"http://10.177.93.135:8082/notify",
8 "feeData":[
9 {
10 "feeRateTypeCode":"300",
11 "feeRatePct":"0.39",
12 "feeUpperAmtPcnt":"20",
13 "feeLowerAmtPcnt":"10"
14 },
15 {
16 "feeRateTypeCode":"301",
17 "feeRatePct":"0.59"
18 },
19 {
20 "feeRateTypeCode":"302",
21 "feeRatePct":"0.49"
22 },
23 {
24 "feeRateTypeCode":"303",
25 "feeRatePct":"0.49"
26 }
27 ],
28 "fileData":[
29 {
30 "attType":"ID_CARD_FRONT",
31 "attFileId":"G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
32 }
33 ]
34 },
35 "ver":"1.0.0",
36 "timestamp":"1541589957000",
37 "reqId":"baff59de4694438ca9089862253517a5"
38}
xxxxxxxxxx
141{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "orderNo": "2021020112000012345678",
7 "orgCode": "1",
8 "contractId": "202103152502679609"
9 },
10 "retCode": "000000",
11 "retMsg": "交易成功",
12 "timestamp": 1615793881827,
13 "ver": "1.0.0"
14}
接入方通过开放平台变更商户的基本信息。 当termNo为空时,对商户层的结算配置信息做变更。 当termNo不为空时,对业务层的结算配置信息做变更(注:如果业务上原来没有配置结算信息,则不变更业务层结算信息)
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/changeSett 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 必传 | String | 32 | 商户内部商户号(拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准) | 4002019111800000020 |
merCupNo | 必传 | String | 32 | 银联商户号 | 82229005411000A |
termNo | 可传 | String | 32 | 银联终端号 | |
openningBankCode | 可传 | String | 32 | 结算账户开户行号 | 参考《卡BIN信息查询接口》 |
openningBankName | 可传 | String | 32 | 结算账户开户行名称 | 参考《卡BIN信息查询接口》 |
clearingBankCode | 必传 | String | 32 | 结算账户清算行号 | 参考《卡BIN信息查询接口》 |
acctNo | 可传 | String | 32 | 结算账户账号 | |
acctName | 可传 | String | 64 | 结算账户名称 | |
acctTypeCode | 可传 | String | 8 | 结算人证件类型 | 57 对公 58 对私 59 支付账户 |
settlePeriod | 可传 | String | 8 | 结算周期 | 参考《商户入网数据字典》 |
acctIdType | 可传 | String | 8 | 结算人证件类型 | 参考《商户入网数据字典》 |
acctIdcard | 可传 | String | 32 | 结算账户证件号码 | 6229301920220928 |
acctIdDt | 可传 | String | 32 | 结算人证件有效期 | 格式(yyyy-MM-dd) |
fileData | 可选 | Set | 附件信息集合 | ||
retUrl | 必传 | String | 64 | 回调地址 | url |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
attFileId | 必传 | String | 文件编号 附件上传接口返回的编号 | |
attType | 必传 | String | 附件类型 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID |
xxxxxxxxxx
261{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "merInnerNo":"4002021030402220100",
6 "settlePeriod":"T+1",
7 "openningBankCode":"102100000030",
8 "openningBankName":"中国工商银行股份有限公司北京市分行营业部",
9 "clearingBankCode":"102100099996",
10 "acctNo":"6212260200102400000",
11 "acctName":"仲涛风",
12 "acctTypeCode":"58",
13 "acctIdcard":"33088119690117459X",
14 "orgCode":"1",
15 "retUrl":"http://10.177.93.135:8082/notify",
16 "fileData":[
17 {
18 "attType":"ID_CARD_FRONT",
19 "attFileId":"G1/M00/00/61/CrFdEl3IyceAVVd8AAA0ADuZsA0911.jpg"
20 }
21 ]
22 },
23 "ver":"1.0.0",
24 "timestamp":"1541589957000",
25 "reqId":"baff59de4694438ca9089862253517a5"
26}
xxxxxxxxxx
141{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "orderNo": "2021020112000012345678",
7 "orgCode": "1",
8 "contractId": "202103152502679610"
9 },
10 "retCode": "000000",
11 "retMsg": "交易成功",
12 "timestamp": 1615794106985,
13 "ver": "1.0.0"
14}
接入方通过开放平台查询进件信息,返回报文同进件审核完成主动通知报文
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/queryContract 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
contractId | 必传 | String | 32 | 进件ID |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID | |
contractStatus | String | 进件状态 | 未提交:NO_COMMIT 已提交 COMMIT 提交失败:COMMIT_FAIL 转人工审核:MANUAL_AUDIT 审核中:REVIEW_ING 审核通过:WAIT_FOR_CONTACT 审核驳回:INNER_CHECK_REJECTED |
contractMemo | String | 进件描述 | 进件审核通过,返回“审核通过”,进件审核驳回,返回具体的驳回理由。 |
merInnerNo | String | 拉卡拉内部商户号 | 该属性审核通过才有 |
merCupNo | String | 银联商户号 | 该属性审核通过才有 |
termDatas | Set | 银联商户号 | 该属性审核通过才有 |
shopId | String | 网点编号 | termDatas的下级属性 |
termId | String | 终端编号 | termDatas的下级属性 |
termNo | String | 终端号 | termDatas的下级属性 |
busiTypeName | String | 业务名称 | termDatas的下级属性 |
productName | String | 产品名称 | termDatas的下级属性 |
productCode | String | 产品代码 | termDatas的下级属性 |
xxxxxxxxxx
111{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "contractId":"202103092502644605"
7 },
8 "ver":"1.0.0",
9 "timestamp":"1541589957000",
10 "reqId":"baff59de4694438ca9089862253517a5"
11}
xxxxxxxxxx
161{
2 "cmdRetCode": "GLOBAL_SUCCESS",
3 "reqId": "",
4 "respData": {
5 "orderNo": "2021020112000012345678",
6 "contractStatus": "MANUAL_AUDIT",
7 "orgCode": "1",
8 "contractId": "202103092502644605",
9 "merInnerNo": "",
10 "contractMemo": "复议提交,转人工审核"
11 },
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "timestamp": 1616134840396,
15 "ver": "1.0.0"
16}
xxxxxxxxxx
311{
2 "code": "000000",
3 "message": "成功",
4 "data": {
5 "orgCode": "1",
6 "orderNo": "2021020112000012345678",
7 "contractId": "202104152503566627",
8 "contractStatus": "WAIT_FOR_CONTACT",
9 "contractMemo": "",
10 "merInnerNo": "4002021041542319044",
11 "merCupNo": "8222900701100D7",
12 "termDatas": [
13 {
14 "shopId": "435080619521814529",
15 "termId": "435080619538591744",
16 "termNo": "A0102367",
17 "busiTypeName": "银行卡",
18 "productName": "智能POS商户",
19 "productCode": "ACQUIRER"
20 },
21 {
22 "shopId": "435080619521814529",
23 "termId": "435080619538591744",
24 "termNo": "A0102368",
25 "busiTypeName": "扫码",
26 "productName": "智能POS商户",
27 "productCode": "ACQUIRER"
28 }
29 ]
30 }
31}
认证方式:SHA256withRSA 签名规则:产生签名值signature的签名串拼接一共有3行,每一行为一个参数,包括时间戳timestamp、随机数nonce_str、请求报文主体。行尾以\n(换行符,ASCII编码值为0x0A)结束,包括最后一行。如果参数本身以\n结束,也需要附加一个\n。 {nonceStr}\n 请求报文主体${body}\n
Header中传送下列值:
Authorization: 认证类型 签名信息 如
Authorization: “LKLAPI-SHA256withRSA timestamp=”{nonceStr}”,signature=”${signature}”“
其中 LKLAPI-SHA256withRSA 表示拉卡拉安全接入签名加密方式
名称 | 描述 |
---|---|
timestamp | 发起的系统时间(秒) |
nonce_str | 12个字符的随机字符串 |
signature | 签名 |
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
code | 必返 | String | 成功返回000000,否则返回具体的错误码 | 000000 | |
message | 必返 | String | 返回码中文描述 | 成功 | |
data | 必返 | Object | 返回对象 | ||
orgCode | 必返 | String | 机构代码 | ||
orderNo | 必返 | String | 订单号 | ||
contractId | 必返 | String | 进件ID | ||
contractStatus | 必返 | String | 未提交:NO_COMMIT 已提交 COMMIT 提交失败:COMMIT_FAIL 转人工审核:MANUAL_AUDIT 审核中:REVIEW_ING 审核通过:WAIT_FOR_CONTACT 审核驳回:INNER_CHECK_REJECTED | WAIT_FOR_CONTACT | |
contractMemo | 必返 | String | 进件描述 | 进件审核通过,返回“审核通过”,进件审核驳回,返回具体的驳回理由。 | |
merInnerNo | 非必返 | String | 拉卡拉内部商户号 | 该属性审核通过才有 | |
merCupNo | 非必返 | String | 银联商户号 | 该属性审核通过才有 | |
termDatas | 非必返 | Set | 银联商户号 | 该属性审核通过才有 | |
shopId | 非必返 | String | 网点编号 | termDatas的下级属性 | |
termId | 非必返 | String | 终端编号 | termDatas的下级属性 | |
termNo | 非必返 | String | 终端号 | termDatas的下级属性 | |
busiTypeName | 非必返 | String | 业务名称 | termDatas的下级属性 | |
productName | 非必返 | String | 产品名称 | termDatas的下级属性 | |
productCode | 非必返 | String | 产品代码 | termDatas的下级属性 |
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
code | 必返 | String | 32 | 应答码 | SUCCESS:成功 FAIL:失败 |
message | 必返 | String | 64 | 异常信息 |
xxxxxxxxxx
151{
2 "retUrl": "http://10.177.93.135:8082/notify",
3 "dataPacket": {
4 "data": {
5 "contractStatus": "COMMIT",
6 "orderNo": "2021020112000012345678",
7 "orgCode": "1",
8 "contractId": "202103182502719606",
9 "merInnerNo": "",
10 "contractMemo": ""
11 },
12 "message": "成功",
13 "code": "000000"
14 }
15}
xxxxxxxxxx
331{
2 "dataPacket": {
3 "code": "000000",
4 "data": {
5 "contractId": "202104062502898611",
6 "contractStatus": "WAIT_FOR_CONTACT",
7 "merCupNo": "82229007011009E",
8 "merInnerNo": "4002021040692311689",
9 "orderNo": "APPLY1617673311306",
10 "orgCode": "1",
11 "termDatas": [
12 {
13 "busiTypeName": "扫码",
14 "productCode": "CLOUD_DISTRIBUTION",
15 "productName": "云分销",
16 "shopId": "431750371322392576",
17 "termId": "431750371326586880",
18 "termNo": "B0100551"
19 },
20 {
21 "busiTypeName": "扫码",
22 "productCode": "SMALL_ROUTINE_ACQUIRER",
23 "productName": "惠码线下支付",
24 "shopId": "431750371322392576",
25 "termId": "431750371574050816",
26 "termNo": "B0100552"
27 }
28 ]
29 },
30 "message": "成功"
31 },
32 "retUrl": "http://paycallback1.1000.com/callback/lkl/bps/register/auditResult"
33}
接入方通过开放平台上传商户入网附件。进件前上传附件,上次完成后必须在24小时内根据上传附件时的orderNo提交进件信息,超过24小时附件失效。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/uploadFile 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
attType | 必传 | String | 32 | 附件类型 | 附件类型枚举,ID_CARD_FRONT |
attExtName | 必传 | String | 32 | 附件扩展名称 | jpg |
attContext | 必传 | 附件内容 | 文件内容 BASE64 |
中文属性 | 枚举值 |
---|---|
身份证正面 | ID_CARD_FRONT |
身份证反面 | ID_CARD_BEHIND |
银行卡 | BANK_CARD |
营业执照 | BUSINESS_LICENCE |
商户门头照 | MERCHANT_PHOTO |
商铺内部照片 | SHOPINNER |
电子协议 | NETWORK_XY |
其他 | OTHERS |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
attFileId | String | 附件ID | |
attType | String | 附件类型 |
xxxxxxxxxx
131{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"1234567897312",
5 "attType":"BUSINESS_LICENCE",
6 "attExtName":"png",
7 "attContext":"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",
8 "orgCode":"1"
9 },
10 "ver":"1.0.0",
11 "timestamp":"1541589957000",
12 "reqId":"baff59de4694438ca9089862253517a5"
13}
xxxxxxxxxx
141{
2 "cmdRetCode": "GLOBAL_SUCCESS",
3 "reqId": "",
4 "respData": {
5 "attType": "BUSINESS_LICENCE",
6 "orderNo": "1234567897312",
7 "orgCode": "1",
8 "attFileId": "G1/M00/06/64/CrFdEmBQc-aAGc_XAAAiIbS3WIE960.png"
9 },
10 "retCode": "000000",
11 "retMsg": "交易成功",
12 "timestamp": 1615885291915,
13 "ver": "1.0.0"
14}
接入方通过开放平台上传附件(适用于进件完成和审核通过的商户补充附件)。 1.仅上送进件ID(contractId)时,如果进件状态为审核通过,无法上传成功,返回“进件已审核通过,请使用商户号补充附件”。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/replenishFile 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
contractId | 可传 | String | 32 | 进件ID | |
merInnerNo | 可传 | String | 32 | 拉卡拉内部商户号 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 |
merCupNo | 可传 | String | 32 | 银联商户号 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 |
attType | 必传 | String | 32 | 附件类型 | 附件类型枚举,ID_CARD_FRONT |
attExtName | 必传 | String | 32 | 附件扩展名称 | jpg |
attContext | 必传 | 附件内容 | 文件内容 BASE64 |
中文属性 | 枚举值 |
---|---|
身份证正面 | ID_CARD_FRONT |
身份证反面 | ID_CARD_BEHIND |
银行卡 | BANK_CARD |
营业执照 | BUSINESS_LICENCE |
商户门头照 | MERCHANT_PHOTO |
商铺内部照片 | SHOPINNER |
电子协议 | NETWORK_XY |
其他 | OTHERS |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
contractId | String | 进件ID | |
merInnerNo | String | 拉卡拉内部商户号 | |
merCupNo | String | 银联商户号 |
xxxxxxxxxx
141{
2 "reqData":{
3 "version": "1.0",
4 "orderNo": "1234567897312",
5 "attType": "BUSINESS_LICENCE",
6 "attExtName": "png",
7 "contractId": "202103102502646607",
8 "attContext": "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",
9 "orgCode": "1"
10},
11 "ver":"1.0.0",
12 "timestamp":"1541589957000",
13 "reqId":"baff59de4694438ca9089862253517a5"
14}
xxxxxxxxxx
161{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "attType": "BUSINESS_LICENCE",
7 "orderNo": "1234567897312",
8 "orgCode": "1",
9 "contractId": "202103102502646607",
10 "attFileId": "G1/M00/05/B2/CrFdEWBQdY-AIp6mAAAiIbS3WIE093.png"
11 },
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "timestamp": 1615885715054,
15 "ver": "1.0.0"
16}
接入方根据拉卡拉内部商户号或银联商户号、终端号将商户的状态变更为“无效”、“有效”。 1.当仅上送拉卡拉内部商户号或银联商户号时,为对整个商户做状态变更,商户下网点、终端、业务都会变更为对应的状态。 2.当上送了终端号时,仅对相应的终端做状态变更。 注意:如果商户的状态为“无效”,且为拉卡拉风控操作,四方机构无权将商户的状态变更为“有效”。接口调用返回详情会明确告知。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/changeMerStatus 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 必传 | String | 32 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 | |
merCupNo | 必传 | String | 32 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 | |
type | 必传 | String | 8 | 操作类型(OPEN,CLOSE) | OPEN |
remark | 可传 | String | 100 | 操作原因 | 操作类型为CLOSE时必传 |
termNos | 可传 | String | 64 | 终端号数据串 | 终端号用“ |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 |
xxxxxxxxxx
141{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "type":"OPEN",
7 "merInnerNo":"4002021030402220100",
8 "termNos":"A0100139|A0100140",
9 "remark":"需要开通"
10 },
11 "ver":"1.0.0",
12 "timestamp":"1541589957000",
13 "reqId":"baff59de4694438ca9089862253517a5"
14}
xxxxxxxxxx
121{
2 "cmdRetCode": "GLOBAL_SUCCESS",
3 "reqId": "",
4 "respData": {
5 "orderNo": "2021020112000012345678",
6 "orgCode": "1"
7 },
8 "retCode": "000000",
9 "retMsg": "交易成功",
10 "timestamp": 1615886060097,
11 "ver": "1.0.0"
12}
接入方在入网前,对商户名称、法人信息、结算人信息做敏感词和黑名单、反洗钱的校验。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/verifyContractInfo 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merRegName | 可传 | String | 32 | 商户注册名称 | |
merBizName | 可传 | String | 32 | 商户经营名称 | |
merBlis | 可传 | String | 32 | 营业执照 | |
larIdcard | 可传 | String | 32 | 法人身份证号 | |
acctNo | 可传 | String | 32 | 结算账号 | |
acctIdcard | 可传 | String | 32 | 结算人证件号 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 |
xxxxxxxxxx
121{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "merRegName":"人民大会堂食堂",
7 "larIdcard":"84454878787"
8 },
9 "ver":"1.0.0",
10 "timestamp":"1541589957000",
11 "reqId":"baff59de4694438ca9089862253517a5"
12}
xxxxxxxxxx
91{
2 "appid": "",
3 "cmdRetCode": "MMS_VERIFYCONTRACTINFO_ERROR",
4 "reqId": "",
5 "retCode": "OP10100",
6 "retMsg": "三代进件进件校验失败(注册名称含有敏感词[人民大会堂])",
7 "timestamp": 1615886261805,
8 "ver": "1.0.0"
9}
四方机构根据拉卡拉内部商户号或银联商户号查询商户的基本信息。敏感信息脱敏。 脱敏规则: 身份证号码:保留前四后四显示,中间位以“”号替换。 营业执照号码:保留前四后四显示,中间位以“”号替换。 银行卡号码:保留前六后四显示,中间位以“”号替换。 电话号码:保留前三后四,中间位以“”号替换。 地址信息:保留省份,中间位以“*”号替换。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/queryMerchant 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
merInnerNo | 可传 | String | 32 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 | |
merCupNo | 可传 | String | 32 | 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
merRegName | String | 商户注册名称 | |
merRegAddr | String | 商户详细地址 | |
mccCode | String | 商户MCC编号 | |
merBlisName | String | 营业执照名称 | |
merBlis | String | 营业执照号 | |
merBlisExpDt | String | 营业执照有效期 | |
merBusiContent | String | 商户经营内容 | |
larName | String | 商户法人姓名 | |
larIdcard | String | 法人身份证号码 | |
larIdcardExpDt | String | 法人身份证有效期 | |
merContactMobile | String | 联系人手机号码 | |
merContactName | String | 商户联系人姓名 | |
openningBankCode | String | 结算账户开户行号 | |
openningBankName | String | 结算账户开户行名称 | |
clearingBankCode | String | 结算账户清算行号 | |
acctNo | String | 结算账户账号 | |
acctName | String | 结算账户名称 | |
acctTypeCode | String | 结算账户性质 | |
settlePeriod | String | 结算周期 | |
openningIdcard | String | 结算账户身份证号 | |
termData | Set | 终端数据 | 终端信息集合 |
feeData | Set | 费率数据 | 费率信息集合 |
limitData | Set | 限额数据 | 限额信息集合 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
shopId | String | 网点编号 | |
termId | String | 终端编号 | |
termNo | String | 终端号 | |
busiTypeName | String | 业务名称 | |
productName | String | 产品名称 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
limitTypeCode | String | 限额类型代码 | |
limitTypeCodeName | String | 限额类型名称 | |
limitAmtPcnt | String | 单笔限额 | 单位(元) |
limitAmtPday | String | 单日限额 | 单位(元) |
limitAmtPmon | String | 单月限额 | 单位(元) |
字段名称 | 约束 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|---|
feeRateTypeCode | 必传 | String | 费率类型 | 参见【费率类型字典表】 |
feeRateTypeName | 必传 | String | 费率类型名称 | 银行卡借记卡 |
feeRatePct | 必传 | String | 手续费率(%) | 0.6 |
feeUpperAmtPcnt | 可选 | String | 单笔交易手续费封顶 | 默认不封顶,单位(元) |
feeLowerAmtPcnt | 可选 | String | 单笔交易手续费保低 | 默认无保底,单位(元) |
feeRateStDt | 可选 | String | 手续费生效日期 | 默认为进件日期 |
xxxxxxxxxx
121{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "merInnerNo":"4002021012659676355",
7 "merCupNo":"82229005411000A"
8 },
9 "ver":"1.0.0",
10 "timestamp":"1541589957000",
11 "reqId":"baff59de4694438ca9089862253517a5"
12}
xxxxxxxxxx
91{
2 "appid": "",
3 "cmdRetCode": "MMS_QUERYMERCHANT_ERROR",
4 "reqId": "",
5 "retCode": "OP10101",
6 "retMsg": "三代进件商户信息查询失败(内部商户号不存在)",
7 "timestamp": 1616391621708,
8 "ver": "1.0.0"
9}
接入方在进件被驳回后(由于系统自动校验无法通过),调用此接口提交进件,转人工审核。
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/reconsiderSubmit 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
contractId | 必传 | String | 32 | 进件ID |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 |
xxxxxxxxxx
111{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "contractId":"202103092502644605"
7 },
8 "ver":"1.0.0",
9 "timestamp":"1541589957000",
10 "reqId":"baff59de4694438ca9089862253517a5"
11}
xxxxxxxxxx
81{
2 "cmdRetCode": "MMS_RECONSIDERSUBMIT_ERROR",
3 "reqId": "",
4 "retCode": "OP10102",
5 "retMsg": "三代进件进件复议提交失败(当前进件状态为[已提交],不可以复议提交)",
6 "timestamp": 1615886683500,
7 "ver": "1.0.0"
8}
接入方在进件前,通过银行卡号查询到开户行信息
请求地址
测试环境:https://test.wsmsd.cn/sit/mms/openApi/cardBin 生产环境:
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
version | 必传 | String | 8 | 接口版本号 | 1.0 |
orderNo | 必传 | String | 32 | 订单编号(便于后续跟踪排查问题及核对报文) | 14位年月日时(24小时制)分秒+8位的随机数(不重复)如:2021020112000012345678 |
orgCode | 必传 | String | 32 | 机构代码 | |
cardNo | 必传 | String | 32 | 银行卡号 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
orgCode | String | 机构代码 | |
orderNo | String | 订单号 | |
cardNo | String | 银行卡号 | |
bankCode | String | 开户行号 | |
clearingBankCode | String | 清算行号 | |
bankName | String | 开户行名称 | |
cardType | String | 银行卡类别 | |
cardName | String | 卡种名称 |
xxxxxxxxxx
111{
2 "reqData":{
3 "version":"1.0",
4 "orderNo":"2021020112000012345678",
5 "orgCode":"1",
6 "cardNo":"4275711234554321"
7 },
8 "ver":"1.0.0",
9 "timestamp":"1541589957000",
10 "reqId":"baff59de4694438ca9089862253517a5"
11}
xxxxxxxxxx
191{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "bankCode": "03050000",
7 "orderNo": "2021020112000012345678",
8 "cardName": "借记卡",
9 "orgCode": "1",
10 "cardType": "借记卡",
11 "bankName": "民生银行",
12 "clearingBankCode": "03050000",
13 "cardNo": "4275711234554321"
14 },
15 "retCode": "000000",
16 "retMsg": "交易成功",
17 "timestamp": 1615886834102,
18 "ver": "1.0.0"
19}
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
请求签名 | 是 |
响应签名 | 是 |
需要BASE64编码 | 否 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/sit/xx |
生产环境URL | https://s2.lakala.com/xx |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
timestamp | 时间戳 | C | Long | Unix时间戳。13位 |
rnd | 随机数 | C | String(32) | 随机数 |
ver | 版本号 | C | String(6) | 1.0.0 |
reqId | 请求序列号 | C | String(32) | - |
reqData | 请求参数 | M | Object |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retCode | 返回业务代码 | M | String(8) | 返回业务代码(000000为成功,其余按照错误信息来定) |
retMsg | 返回业务代码描述 | M | String(50) | 返回业务代码描述 |
sign | 签名 | C | String(32) | 默认MD5方式签名,签名内容为retData+secret_key。 |
timestamp | 时间戳 | C | Long | Unix时间戳,13位 |
rnd | 随机数 | C | String(32) | 随机数 |
reqId | 请求序列号 | C | String(32) | 请求序列号 |
respId | 响应序列号 | C | String(32) | 响应序列号 |
ver | 版本号 | C | String(6) | 版本号 |
respData | 响应参数 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
为商户系统提供下单服务,基于商户提交的商户订单,生成支付订单,返回支付订单号,用于后序支付服务
请求地址
测试环境:https://test.wsmsd.cn/sit/los/createOrder 生产环境:https://s2.lakala.com/los/createOrder
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
merchantOrderNo | 必传 | String | 64 | 商户订单号 | |
merchantNo | 必传 | String | 32 | 结算商户号 | 822100041120005 |
termId | 可传 | String | 12 | 交易所属终端号 | 24865454154 |
orderInfo | 可传 | String | 100 | 订单信息 | |
extendInfo | 可传 | String | 100 | ||
channelId | 必传 | String | 32 | 渠道编号 | 24865454154 |
amount | 必传 | int | 10 | 订单金额,单位:分 范围0~9999999999 | 200 |
currency | 必传 | String | 3 | 币种,参见国标,默认值:156 | 156 |
orderCreateTime | 必传 | String | 19 | 商户创建订单时间,格式:YYYY-MM-DD HH:MM:SS | 2018-12-06 16:58:45 |
orderEfficientTime | 必传 | String | 19 | 订单有效期,格式:YYYY-MM-DD HH:MM:SS | 2018-12-08 17:58:45 |
notifyUrl | 可传 | String | 500 | 通知地址 http://xxx.xxx.com | |
supportCancal | 可传 | int | 2 | 是否支持撤销 默认 0 不支持 | (0 不支持 1支持) |
supportRefund | 可传 | int | 2 | 是否支持退款 默认0 不支持 | (0 不支持 1支持) |
supportRepeatPay | 可传 | int | 1 | 是否支持重复支付 默认0 不支持 | (0 不支持 1支持) |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
merchantNo | String | 商户号 | |
channelId | String | 渠道号 | |
merchantOrderNo | String | 商户订单号 | |
createTime | String | 创建订单时间 | |
payOrderNo | String | 支付流水号 |
xxxxxxxxxx
211{
2 "reqData":{
3 "merchantOrderNo": "12345678",
4 "merchantNo": "822100041120005",
5 "termId": "24865454154",
6 "orderInfo": "24865454154",
7 "extendInfo": "24865454154",
8 "channelId": "06",
9 "amount": "200",
10 "currency": "156",
11 "orderCreateTime": "2018-12-06 16:58:45",
12 "orderEfficientTime": "2018-12-08 16:58:45",
13 "supportCancal": "0",
14 "supportRefund": "0",
15 "supportRepeatPay":"0",
16 "notifyUrl":"http://www.lakala.com"
17 },
18 "ver":"1.0.0",
19 "timestamp":"1541589957000",
20 "reqId":"baff59de4694438ca9089862253517a5"
21}
xxxxxxxxxx
161{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "payOrderNo": "21032911012001970631000253001",
7 "createTime": "2021-03-29 11:21:27",
8 "merchantOrderNo": "12345678",
9 "channelId": "06",
10 "merchantNo": "822100041120005"
11 },
12 "retCode": "000000",
13 "retMsg": "交易成功",
14 "timestamp": 1616988100720,
15 "ver": "1.0.0"
16}
用于为商户提供交易查询服务,返回订单数据全量
请求地址
测试环境:https://test.wsmsd.cn/sit/los/queryFullOrder 生产环境:https://s2.lakala.com/los/queryFullOrder
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
merchantOrderNo | 必传 | String | 64 | 商户订单号 | |
merchantNo | 必传 | String | 32 | 结算商户号 | 13775821 |
channelId | 必传 | String | 32 | 渠道编号 |
字段名称 | 字段类型 | 字段描述 | 取值说明 |
---|---|---|---|
payOrderNo | String | 支付流水号 | |
merchantOrderNo | String | 商户订单号 | |
tradeMerchantNo | String | 交易商户号 | |
tradeTermId | String | 交易终端号 | |
merchantNo | String | 结算商户号 | |
termId | String | 结算终端号 | |
orderInfo | String | 订单描述 | |
tradeType | String | 交易类型 | |
amount | BigInteger | 订单金额,单位:分 | |
currency | String | 币种 | |
orderCreateTime | datetime | 订单创建时间 | |
orderEfficientTime | datetime | 商户订单有效期 | |
payStatus | String | 支付状态 | 记录POSP的返回状态 S:成功 F:失败 C:被冲正 U:预记状态 X:发送失败 T: 发送超时 P: 处理中 |
extendField | String | 扩展字段 | |
remark | String | 备注 | |
channelId | String | 渠道号 | |
notifyStatus | int | 通知状态 | 0未通知 1通知成功 2通知失败 |
orderStatus | int | 订单状态 | NOTPAY(0,”未支付”), PAYING(1,”支付中”), PAID(2,”付款成功”), FAIL(3,”支付失败”), EXPIRED(4,”已过期”), CANCELED(5,”已取消”); |
payTime | String | 支付时间 | |
payerId2 | String | 付款人标记 | 卡号、父级openid、userid等,二期新增字段 |
payerId2 | String | 付款人子标记 | 子openid,二期新增字段 |
crdFlg | String | 付款方式 | 微信刷脸 支付宝刷脸 微信扫码 支付宝扫码 银联扫码 银联刷脸、刷卡等,二期新增字段 |
smCrdFlg | String | 扫码卡类型 | 00:不确定 01:借记卡 02:贷记卡 03:微信零钱 04:支付宝花呗 05:支付宝其他 |
xxxxxxxxxx
101{
2 "reqData":{
3 "merchantOrderNo":"20200924141756115675",
4 "merchantNo":"332323",
5 "channelId":"28088111888888"
6 },
7 "ver":"1.0.0",
8 "timestamp":"1541589957000",
9 "reqId":"baff59de4694438ca9089862253517a5"
10}
xxxxxxxxxx
231{
2 "appid": "",
3 "cmdRetCode": "GLOBAL_SUCCESS",
4 "reqId": "",
5 "respData": {
6 "amount": 0,
7 "payOrderNo": "20092411012001localhost.localdomain1000209100",
8 "createTime": "2020-09-24 14:17:56",
9 "payTime": "",
10 "crdFlg": "",
11 "orderStatus": 4,
12 "currency": "156",
13 "payerId2": "",
14 "merchantOrderNo": "20200924141756115675",
15 "channelId": "28088111888887",
16 "merchantNo": "332323",
17 "payerId1": ""
18 },
19 "retCode": "000000",
20 "retMsg": "交易成功",
21 "timestamp": 1615429804258,
22 "ver": "1.0.0"
23}
通知接入方系统,通过延时队列进行散列通知,通知频率:间隔:1s/5s/5s/10s/3m/10m/20m/30m/1h/2h - 总计 4h3m21s。商户返回应答SUCCESS,将终止通知
Header中传送下列值:
Authorization: 认证类型 签名信息 如
Authorization: “LKLAPI-SHA256withRSA timestamp=”{nonceStr}”,signature=”${signature}”“
其中 LKLAPI-SHA256withRSA 表示拉卡拉安全接入签名加密方式
名称 | 描述 |
---|---|
timestamp | 发起的系统时间(秒) |
nonce_str | 12个字符的随机字符串 |
signature | 签名 |
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
payOrderNo | 必返 | String | 64 | 支付流水号 | |
merchantOrderNo | 必返 | String | 64 | 商户订单号 | |
tradeMerchantNo | 非必返 | Object | 32 | 交易商户号 | |
tradeTermId | 非必返 | String | 交易终端号 | ||
merchantNo | 必返 | String | 结算商户号 | ||
termId | 必返 | String | 结算终端号 | ||
orderInfo | 非必返 | String | 订单描述 | ||
tradeType | 必返 | String | 交易类型 | ||
amount | 非必返 | BigInteger | 订单金额,单位:分 | ||
currency | 必返 | String | 3 | 币种 | |
orderCreateTime | 必返 | datetime | 订单创建时间 | ||
orderEfficientTime | 必返 | datetime | 商户订单有效期 | ||
payStatus | 必返 | String | 10 | 支付状态 | 记录POSP的返回状态 S:成功 F:失败 C:被冲正 U:预记状态 X:发送失败 T: 发送超时 P: 处理中 |
extendField | 非必返 | String | 100 | 扩展字段 | |
remark | 非必返 | String | 256 | 备注 | |
channelId | 必返 | String | 32 | 渠道号 | |
notifyStatus | 必返 | int | 2 | 通知状态 | 0未通知 1通知成功 2通知失败 |
noticeNum | 必返 | String | 2 | 当前通知次数 | 1 |
payerId1 | 非必返 | String | 50 | 付款人标记 | 卡号、父级openid、userid等,二期新增字段 |
payerId2 | 非必返 | String | 50 | 付款人子标记 | 子openid,二期新增字段 |
crdFlg | 非必返 | String | 10 | 付款方式 | 00:借记卡 01:贷记卡 74 : 数币钱包 75:拉卡拉支付账户 81:银联二维码支付借记 82:银联二维码支付贷记 91:微信 92:支付宝 |
smCrdFlg | 非必返 | String | 20 | 扫码卡类型 | 00-借记卡,01-贷记卡,02-微信零钱,03-支付宝花呗,04-支付宝其它,05-数字货币,99-未知 |
tradeTime | 必返 | String | 14 | 交易完成时间 | |
accountChannelOrderNo | 必返 | String | 50 | 账户方流水 |
字段名称 | 约束 | 字段类型 | 长度 | 字段描述 | 取值说明 |
---|---|---|---|---|---|
code | 必返 | String | 32 | 应答码 | SUCCESS:成功 FAIL:失败 |
message | 必返 | String | 64 | 异常信息 |
xxxxxxxxxx
321{
2 "payOrderNo":"21041311012001970631000263034",
3 "merchantOrderNo":"01338672980510638080",
4 "orderInfo":null,
5 "merchantNo":"82212105811001A",
6 "termId":"D0015741",
7 "tradeMerchantNo":"82212105811001A",
8 "tradeTermId":"D0015741",
9 "channelId":"00000007",
10 "currency":"156",
11 "amount":1,
12 "tradeType":"PAY",
13 "payStatus":"S",
14 "notifyStatus":0,
15 "orderCreateTime":"2021-04-13T06:45:15.000+00:00",
16 "orderEfficientTime":"2021-04-13T06:45:15.000+00:00",
17 "extendField":null,
18 "payTime":"2021-04-13T06:45:15.000+00:00",
19 "remark":"",
20 "noticeNum":1,
21 "sign":null,
22 "notifyUrl":null,
23 "notifyMode":"2",
24 "payInfo":"1#1#ALIPAY#0#2021041322001493091447752820",
25 "lklOrderNo":"2021041366210001111143",
26 "crdFlg":"01",
27 "payerId1":null,
28 "payerId2":null,
29 "smCrdFlg":"01",
30 "tradeTime":"20210413144515",
31 "accountChannelOrderNo":"2021041322001493091447752820"
32}
xxxxxxxxxx
41{
2 "code":"SUCCESS",
3 "message":"执行成功"
4}
认证方式:SHA256withRSA 签名规则:产生签名值signature的签名串拼接一共有3行,每一行为一个参数,包括时间戳timestamp、随机数nonce_str、请求报文主体。行尾以\n(换行符,ASCII编码值为0x0A)结束,包括最后一行。如果参数本身以\n结束,也需要附加一个\n。 {nonceStr}\n 请求报文主体${body}\n
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
请求签名 | 是 |
响应签名 | 是 |
需要BASE64编码 | 否 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/sit/xx |
生产环境URL | https://s2.lakala.com/xx |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
timestamp | 时间戳 | C | Long | Unix时间戳。13位 |
rnd | 随机数 | C | String(32) | 随机数 |
ver | 版本号 | C | String(6) | 1.0.0 |
reqId | 请求序列号 | C | String(32) | - |
reqData | 请求参数 | M | Object |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
retCode | 返回业务代码 | M | String(8) | 返回业务代码(000000为成功,其余按照错误信息来定) |
retMsg | 返回业务代码描述 | M | String(50) | 返回业务代码描述 |
sign | 签名 | C | String(32) | 默认MD5方式签名,签名内容为retData+secret_key。 |
timestamp | 时间戳 | C | Long | Unix时间戳,13位 |
rnd | 随机数 | C | String(32) | 随机数 |
reqId | 请求序列号 | C | String(32) | 请求序列号 |
respId | 响应序列号 | C | String(32) | 响应序列号 |
ver | 版本号 | C | String(6) | 版本号 |
respData | 响应参数 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
提供银行卡和扫码的统一退货业务,根据流水和交易类型判断退货请求发往银行卡(POSP)还是扫码系统
请求URL
测试环境:https://test.wsmsd.cn/sit/openapi/lams/refund 生产环境:
字段名称 | 内容 | 是否必输 | 最大长度 | 备注 |
---|---|---|---|---|
mercId | 商户号 | 是 | String(32) | 拉卡拉分配的商户号 |
termId | 终端号 | 是 | String(32) | 拉卡拉分配的终端号 |
merReqSno | 商户请求流水号 | 是 | String(64) | 商户系统唯一 |
refundAmount | 退款金额 | 是 | String(12) | 单位分,整数数字型字符 |
originBizType | 原业务类型 | 是 | String(1) | 原交易类型:1 银行卡,2 外卡,3 扫码 产品表——PosType-卡应用-产品映射关系表 |
originTradeDate | 原交易日期 | 是 | String(8) | 原交易日期:yyyyMMdd 20200326 |
originLogNo | 原交易平台交易参考号 | 否 | String(14) | 交易返回的拉卡拉统一交易单号,扫码交易为6621开头,数币交易为6631开头,POSP交易为年份后两位开头 |
originLklOrderNo | 原交易拉卡拉交易订单号 | 否 | String(32) | 下单成功时,返回的扫码系统生成的送往账户方的交易流水号,在微信或支付宝交易信息界面显示为商户订单号 |
originOSNo | 原交易拉卡拉内部订单号 | 否 | String(32) | 拉卡拉订单系统生成的订单号 |
originCardNo | 原交易银行卡号 | 否 | String(32) | 原交易银行卡号,银行卡退款必填,如无完整卡号可送交易通知时的脱敏卡号如6226**8223 |
extField | 扩展信息 | 否 | String(6000) | 各类交易的扩展字段 |
orginLogNo、originLklOrderNo、originOsNo必填一个
字段名称 | 内容 | 是否必输 | 备注 |
---|---|---|---|
logNo | 拉卡拉退款单号 | 是 | 平台交易单号 |
tradeTime | 平台交易时间 | 是 | 平台交易时间yyyyMMddHHmmss |
merReqSno | 商户请求流水号 | 是 | 如果请求中携带,则返回 |
totalAmount | 交易金额 | 是 | 单位分,整数数字型字符串 |
payerAccountAmt | 实际退款金额 | 是 | 单位分,整数数字型字符串 |
refundAmount | 申请退款金额 | 是 | 单位分,整数数字型字符串 |
payRefundNo | 账户端交易订单号 | 否 | 账户端交易订单号 |
originLogNo | 原交易平台交易参考号 | 否 | 如果请求中携带,则返回 |
originLklOrderNo | 原交易拉卡拉交易订单号 | 否 | 如果请求中携带,则返回 |
originMerReqSno | 原商户请求流水号 | 否 | 如果请求中携带,则返回 |
extField | 扩展信息 | 否 |
xxxxxxxxxx
151{
2 "reqData":{
3 "merId":"822124058120104",
4 "termId":"47900982",
5 "merReqSno":"1234567891",
6 "refundAmount":"1",
7 "originBizType":"1",
8 "originTradeDate":"20210406",
9 "originLogNo":"040630000663",
10 "originCardNo":"6221550795849722"
11 },
12 "ver":"1.0.0",
13 "timestamp":"1541589957000",
14 "reqId":"baff59de4694438ca9089862253517a5"
15}
xxxxxxxxxx
91{
2 "appid": "",
3 "cmdRetCode": "LAMS_SREFUND_ERROR",
4 "reqId": "",
5 "retCode": "OP10300",
6 "retMsg": "统一退货失败失败(POSP退款失败[退货交易累计退货金额已超限])",
7 "timestamp": 1619060191587,
8 "ver": "1.0.0"
9}
接口文档中,必选栏目:M 必须,C 可选
说明 | 描述 |
---|---|
接口版本 | v1.0.0 |
功能描述 | 外部机构接入开放平台 |
调用方 | 外部机构 |
请求方法 | POST |
请求签名 | 是 |
响应签名 | 是 |
需要BASE64编码 | 否 |
授权方式 | LKLAPI-SHA256withRSA |
测试环境URL | https://test.wsmsd.cn/sit/saas/txn/xx |
生产环境URL | https://s2.lakala.com/saas/txn |
测试环境商户终端号 | 商户号:822290070111135 终端号: 29034705 商户号:822126090640003 终端号: 47781282 |
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
tradeCode | 交易码 | M | String(10) | |
version | 版本号 | C | String(8) | 版本号1.0.0 |
barcodeMerchantNo | 商户号 | M | String(32) | |
terminalNo | 终端设备号 | M | String(32) | |
opUserId | 操作员 | C | String(32) | |
location | 地理位置(城市) | 否 | String(100) | 纬度,经度 |
terminalIp | 终端IP | M | String(16) | |
baseStation | 基站信息 | 否 | String(128) | |
termSN | 终端序列号 | C | String(64) | |
termType | 设备类型 | 否 | String(2) | 01:PC 02:手机 03:收银机 04:移动终端 05:静态码 |
termSerialNo | 设备串号 | C | String(64) | 静态码台卡没有 |
appVersion | 应用程序版本号 | 否 | String(8) |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
resCode | 返回码 | M | String(16) | |
resMsg | 返回码描述 | M | String(50) | |
data | 返回数据 | C | Object | 返回数据.下文定义的响应均为该属性中的内容 |
sign | 签名 | C | String(1000) | |
signType | 签名类型 | C | String(8) | 签名类型,取值:sha-256默认:sha-256 |
nonceStr | 随机字符串 | C | String(32) | 随机字符串,不长于32位。推荐随机数生成算法 |
请求URL
测试环境:https://test.wsmsd.cn/sit/saas/txn/order_refund 生产环境:https://s2.lakala.com/saas/txn/order_refund
钱包 | tradeCode |
---|---|
微信 | 010202 |
支付宝 | 020202 |
银联 | 030202 |
数字货币 | 070202 |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
tradeNo | 拉卡拉订单号 | M | String(32) | 拉卡拉唯一订单号 |
refundReason | 退款原因 | M | String(64) | |
refundAmount | 退款金额 | M | String | |
dealOrderId | 外部退款订单号 | M | String(32) | |
describe | 商品描述 | C | String(128) | 单品优惠传 |
goodsDetail | 商品详情 | C | String(6000) | 单品优惠传 |
outMerchOrderNo | 外部商户订单号 | C | String |
属性 | 说明 | 必选 | 类型 | 备注 |
---|---|---|---|---|
payRefundNo | 退款订单号 | M | String(32) | 账户端退款订单号 |
refundNo | 拉卡拉退款订单号 | M | String(32) | |
dealOrderRefundNo | 商户退款订单号 | M | String(32) | 商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔 |
settlementRefundFee | 退款金额 | C | String | 去掉非充值代金券退款金额后的退款金额,退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额 |
totalAmount | 订单金额 | M | String | 订单总金额,单位为分,只能为整数,详见支付金额 |
totalAmount | 申请退款金额 | C | String | 商家发起的申请退款金额(含优惠部分) |
gmtRefundPay | 退款完成时间 | C | String(14) | 退款时间 |
issAddnData | 单品营销 附加数据 | C | String | |
couponInfo | 单品营销 优惠信息 | C | String |