拉卡拉扫码预授权下单API请求参数
说明
1:用户使用微信、支付宝钱包主动扫描商家聚合码,将订单信息通过本接口上送发起资金冻结。
2:发起预授权后若30天内未发起预授权完成,系统会自动发起预授权撤销将冻结资金回退用户
请求URL
测试环境:https://test.wsmsd.cn/sit/api/v2/labs/txn/preAuth/preAuthPreOrder
生产环境:https://s2.lakala.com/api/v2/labs/txn/preAuth/preAuthPreOrder
请求参数
| 属性 | 说明 | 必选 | 类型 | 备注 |
|---|---|---|---|---|
| merId | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
| termId | 终端号 | M | String(32) | 拉卡拉分配的商户号 |
| accountType | 钱包类型 | M | String(32) | 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 数字货币:DCPAY |
| amount | 金额 | M | String(12) | 单位分,整数型字符 |
| appId | 子商户公众账号ID | C | String(32) | 微信分配的子商户公众账号ID,sub_appid(即微信小程序支付-71、公众号支付-51),此参数必传,只对微信支付有效 工行数字钱包情况下,该字段上送工行的openId |
| openId | 用户标识 | C | String(128) | 用户在子商户appid下的唯一标识,sub_openid,(即微信小程序支付-71、众号支付-51),此参数必传,只对微信支付有效 注:建议使用静默授权 微信公众号为用户的 openid 支付宝服务窗为用户的 buyer_id 银联JS支付为用户的 userId,获取用户授权返回00时必传 翼支付不需要上送 工行数字钱包情况下,该字段上送工行的subOpenId |
| transType | 接入方式 | C | String(2) | 61:微信APP支付(银联不支持,微信支持,需直连微信) 71:微信小程序支付 41:NATIVE(扫码支付)(WECHAT暂不支持) 51:JSAPI(微信公众号支付,支付宝服务窗支付,银联JS支付,翼支付JS支付、数字货币钱包支付) |
| merReqSno | 商户请求流水号 | M | String(64) | 商户系统唯一,对应数据库表中外部请求流水号。 |
| exterMerOrderNo | 外部商户订单号 | C | String(32) | 商品订单号,如动态码关联的某个商品订单号,每个外部订单来源下的外部商户订单号不可重复。 |
| exterOrderSource | 外部订单来源 | C | String(16) | |
| settleType | 结算类型 | C | String(4) | “0”或者空,常规结算方式;“1”-暂缓结算方式 |
| goodsDetail | 商品详情 | C | String(6000) | 订单包含的商品列表信息,Json格式。 |
| subject | 订单标题 | M | String(128) | 标题,用于简单描述订单或商品主题 (账户端控制,实际最多42个字符) |
| goodsDesp | 商品优惠描述 | C | String(128) | 优惠场景使用,送往账户端 |
| remark | 备注 | C | String(128) | |
| goodsTag | 订单优惠标记 | C | String(32) | 订单优惠标记,微信平台配置的商品标记,用于优惠券或者满减使用,accountType为WECHAT时,可选填此字段 |
| attach | 附加域 | C | String(128) | 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据。商户定制字段,直接送到账户端。 |
| extendParams | 业务扩展参数 | C | object | 支付宝业务扩展参数 ,见说明 |
| promoInfo | 优惠信息 | C | String(2048) | 优惠相关信息,JSON格式 |
| upOrderInfo | 银联订单信息 | C | String(600) | 银联单品营销订单信息 |
| upGoodsInfo | 银联商品信息 | C | String(6000) | 银联单品营销商品信息 |
| frontUrl | 银联前台通知地址 | C | String(256) | 收款方向银联推送订单时上送的前台通知地址(仅允许为外网地址),用户完成支付点击,“返回”后,银联通过浏览器POST请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段 |
| frontFailUrl | 银联失败交易前台通知地址 | C | String(256) | 收款方向银联推送订单时上送的失败交易前台通知地址(仅允许为外网地址),用户支付过程中交易失败,点击“返回”后,银联通过浏览器GET请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段,需与frontUrl同时出现,未上送默认为frontUrl的值 |
| expiredStrategy | 担保过期策略 | C | String(8) | CANCEL-撤销 COMPLETE-完成(默认) |
| preOrderValidTime | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。如果在有效时间内没有完成付款,则在账户端该订单失效。如果不上送,以账户端订单失效时间为准。建议不超过15分钟。不传值则默认5分钟。 |
响应参数
| 属性 | 说明 | 必选 | 类型 | 备注 |
|---|---|---|---|---|
| tradeTime | 交易时间 | M | String(14) | 平台交易时间yyyyMMddHHmmss |
| merReqSno | 商户请求流水号 | M | String(64) | 如果请求中携带,则返回 |
| lklOrderNo | 拉卡拉订单号 | M | String(32) | saas系统返回时,则返回 |
| logNo | 拉卡拉对账单流水号(计划中) | M | String(14) | lklOrderNo的后14位 |
transType=51(JSAPI) 时返回
payMode=WECHAT 时返回
属性 说明 必选 类型 备注 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
payMode=ALIPAY 时返回
属性 说明 必选 类型 备注 prepayId 预下单Id C String(32) 预支付交易会话ID
payMode=UQRCODEPAY 时返回
属性 说明 必选 类型 备注 redirectUrl 银联JS支付重定向地址 C String(256) 银联JS支付返回重定向地址
payMode=LKLACC 时返回
属性 说明 必选 类型 备注 prepayId 预下单Id C String(32) 预支付交易会话ID
transType=41(NATIVE) 时返回
| 属性 | 说明 | 必选 | 类型 | 备注 |
|---|---|---|---|---|
| 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(微信APP支付) 时返回
| 属性 | 说明 | 必选 | 类型 | 备注 |
|---|---|---|---|---|
| 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(支付宝H5支付) 时返回
| 属性 | 说明 | 必选 | 类型 | 备注 |
|---|---|---|---|---|
| formData | 为开发者生成前台页面请求需要的完整form 表单的 html(不包含自动提交脚本),商户可决定是否直接提交 form 表单,如需要直接提交的,可将这个表单的 String 加自动提交脚本输出到 http response 中,如不需要直接提交的,可以自行决定中间处理过程,但提交至支付宝侧的 form 表达内容不可修改,否则会引起支付宝侧报错。 | C | String(128) | 为银联支付宝H5支付时,为开发者生成前台页面请求需要的完整form 表单的 html |
NATIVE示例报文
NATIVE请求报文
{
"reqData": {
"mercId": "822100050210643",
"termNo": "47846848",
"payMode": "ALIPAY",
"amount": "000000000001",
"openId": "",
"spbillCreateIp": "127.1.10",
"transType": "41",
"orderId": "20200728165211",
"appId": "",
"subject": "测试专用"
},
"ver": "1.0.0",
"timestamp": "1541589957000",
"reqId": "baff59de4694438ca9089862253517a5",
"termExtInfo": {
"termLoc": "+155621.316,-125622.12"
}
}复制NATIVE成功响应报文
{
"respData": {
"tradeTime": "20200729150043",
"code": "https://qr.alipay.com/bax01969llc2hqjjifvm50ff",
"orderId": "20200728165211",
"lklOrderId": "20200729110113200266211202870109"
},
"timestamp": 1596006044804,
"rnd": null,
"ver": "1.0.0",
"reqId": "baff59de4694438ca9089862253517a5",
"respId": null,
"retCode": "000000",
"retMsg": "交易成功",
"cmdRetCode": "GLOBAL_SUCCESS"
}复制NATIVE失败响应报文
{
"retCode": "PT10FF",
"retMsg": "生成订单失败",
"sign": "",
"timestamp": 1553823081169,
"ver": "1.0.0"
}复制JSAPI示例报文
JSAPI请求报文
{
"reqData": {
"mercId": "822162070120015",
"termNo": "47827142",
"payMode": "WECHAT",
"amount": "000000000001",
"openId": "olpr-0pHIp1AjaAr29LENlHi0cJ0",
"spbillCreateIp": "127.0.0.1",
"transType": "51",
"orderId": "2020072915yhl1422",
"appId": "wx9ef39b708f16694d",
"subject": "测试专用"
},
"ver": "1.0.0",
"timestamp": "1541589957000",
"reqId": "baff59de4694438ca9089862253517a5",
"termExtInfo": {
"termLoc": "+155621.316/-125622.12"
}
}复制JSAPI成功响应报文
{
"respData": {
"timeStamp": "1596008125",
"tradeTime": "20200729153540",
"package": "prepay_id=wx29153525159581b728038c9c1125323300",
"paySign": "wWYfaNyyMuqAHVppUfQHXLGLUVcDeCyMsbiMbT9NSEiO2+Y/1uYSFS27LYINaF9f5OoI6MJFvpZfwFGCTVByoNWUH+vfyeK96ITTsy0w44ng2paqdWRHN0D9qtUyVUcbNcf2C5jQ05H65SHNI8oUnUbwlHgGe5AA4JFqKdqiODXQ4g47F11B5/a3masTmHtE7VyIU8nIXz9iPRJh28NiY2DRSX7KMU8OGZb6Y+sAi2fLqfkB9sVHnWD3BzuXDI5xIAVj3BvF3LR38/JWeR9mEqCuQLo7VdC5WnmnqZyVo6KFExNL5Gsin85AILz8S8ibOn4ADmU7sXs0LiJ2bc7K3Q==",
"orderId": "2020072915yhl1422",
"lklOrderId": "20200729110113100266211202870161",
"appId": "wx2421b1c4370ec43b",
"signType": "RSA",
"nonceStr": "20ee06fc255a4606942470808e015112"
},
"timestamp": 1596008140382,
"rnd": null,
"ver": "1.0.0",
"reqId": "baff59de4694438ca9089862253517a5",
"respId": null,
"retCode": "000000",
"retMsg": "交易成功",
"cmdRetCode": "GLOBAL_SUCCESS"
}复制JSAPI失败响应报文
{
"respData": null,
"timestamp": 1596006460198,
"rnd": null,
"ver": "1.0.0",
"reqId": "baff59de4694438ca9089862253517a5",
"respId": null,
"retCode": "BPS10028",
"retMsg": "主扫支付失败(参数错误)",
"cmdRetCode": "PREPAY_ORDER_ERROR"
}复制错误码
| 错误码 | 描述 | 备注 |
|---|---|---|
| 000000 | 交易成功 | - |
The End
