接口说明:
主扫交易接口,若涉及指定买家姓名身份证号等敏感信息时需要将全报文进行加密处理后再调用此接口完成下单。加密方式见开发指引敏感信息接口加密说明。
调用地址
使用HTTP协议,POST方式提交。
测试环境:https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder_encry
生产环境:https://s2.lakala.com/api/v3/labs/trans/preorder_encry
请求报文
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| merchant_no | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
| term_no | 终端号 | M | String(32) | 拉卡拉分配的业务终端号 |
| out_trade_no | 商户交易流水号 | M | String(32) | 商户系统唯一,对应数据库表中外部请求流水号。 |
| account_type | 钱包类型 | M | String(32) | 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 拉卡拉支付账户:LKLACC 网联小钱包:NUCSPAY 京东钱包:JD |
| trans_type | 接入方式 | M | String(2) | 41:NATIVE((ALIPAY,云闪付支持) 51:JSAPI(微信公众号支付,支付宝服务窗支付,银联JS支付,翼支付JS支付、拉卡拉钱包支付)
71:微信小程序支付 61:APP支付(微信APP支付) |
| total_amount | 金额 | M | String(12) | 单位分,整数型字符 |
| location_info | 地址位置信息 | M | Object | 地址位置信息,风控要求必送 |
| busi_mode | 业务模式 | C | String(8) | 业务模式: ACQ-收单 不填,默认为“ACQ-收单” |
| subject | 订单标题 | C | String(42) | 标题,用于简单描述订单或商品主题,会传递给账户端 (账户端控制,实际最多42个字符),微信支付必送。 |
| pay_order_no | 支付业务订单号 | C | String(64) | 拉卡拉订单系统订单号,以拉卡拉支付业务订单号为驱动的支付行为,需上传该字段。 |
| notify_url | 商户通知地址 | C | String(128) | 商户通知地址,如果上传,且 pay_order_no 不存在情况下,则按此地址通知商户(详见“[交易通知]”接口) |
| settle_type | 结算类型 | C | String(4) | “0”或者空,常规结算方式,如需接拉卡拉分账需传“1”; |
| remark | 备注 | C | String(128) |
|
| identity_info | 身份信息 | C | String(1024) | 实名支付信息,json字符串,如{“identityNo”:”32000000000000000X”,”name”:”张三”} |
| acc_busi_fields | 账户端业务信息域 | C | Object | 参见以下acc_busi_fields字段详细说明,不同的account_type和trans_type,需要传入的参数不一样 |
location_info字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| request_ip | 请求方IP地址 | M | String(64) | 请求方的IP地址,存在必填,格式如36.45.36.95 |
| base_station | 基站信息 | C | String(128) | 客户端设备的基站信息(主扫时基站信息使用该字段) |
| location | 纬度,经度 | C | String(32) | 商户终端的地理位置,整体格式:纬度,经度,+表示北纬、东经,-表示南纬、 西经。 经度格式:1位正负号+3位整数+1位小数点+5位小数; 纬度格式:1位正负号+2位整数+1位小数点+6位小数; 举例:+31.221345,+121.12345 |
支付宝主扫场景下acc_busi_fields域内容
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| user_id | 买家在支付宝的用户id | C | String(64) | 支付宝的buyer_user_id ,trans_type为41-NATIVE情况下不需要传,为51情况下必须传入 |
| timeout_express | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。如果在有效时间内没有完成付款,则在账户端该订单失效。如果不上送,以账户端订单失效时间为准。 建议不超过15分钟。不传值则默认5分钟。 |
| extend_params | 业务扩展参数 | C | Object | 支付宝业务扩展参数 ,见说明 |
| goods_detail | 商品详情 | C | String(6000) | 订单包含的商品列表信息,Json数组。 |
| store_id | 商户门店编号 | C | String(32) | 支付宝收单上送 |
| alipay_store_id(不再使用) | 支付宝店铺编号 | C | String(32) | 支付宝已不再使用该字段 |
| disable_pay_channels | 支付宝禁用支付渠道 | C | String(32) | “credit_group”表示禁用信用卡 |
| business_params | 商户传入业务信息 | C | String(512) | 商户传入业务信息,应用于安全,营销等参数直传场景,格式为 json 格式。 示例:{“enable_thirdpar ty_subsidy”:”N”} |
| min_age | 允许的最小买家年龄 | C | String(2) | 买家年龄必须大于等于所传数值 |
支付宝extend_params字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| sys_service_pr ovider_id | 服务商的PID | C | String(64) | 系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的 PID |
| hb_fq_num | 花呗分期期数 | M | String(5) | 支付宝花呗分期必送字段: 花呗分期数 3:3期 6:6期 12:12期 |
| hb_fq_seller_percent | 卖家承担手续费比例 | M | String(3) | 支付宝花呗分期必送字段: 卖家承担手续费比例,间连模式下只支持传0。 |
| food_order_type | 点餐场景类型 | C | String | 点餐场景类型:qr_order(店内扫码点餐),pre_order(预点到店自提),home_delivery (外送到家),direct_payment(直接付款),other(其它) |
支付宝goods_detail字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| goods_id |
| M | String(32) | 商品的编号 |
| alipay_goods_id |
| C | String(32) | 支付宝定义的统一商品编号 |
| goods_name |
| M | String(256) | 商品名称 |
| quantity |
| M | Number | 商品数量 |
| price |
| M | Price | 商品价格 单位元 |
| goods_category |
| C | String(24) | 商品类目 |
| categories_tree |
| C | String(128) | 商品类目树,从商品类目根节点到叶子节点的类目 id 组成,类目 id 值使用|分 割 |
| body |
| C | String(512) | 商品描述信息 |
| show_url |
| C | String(256) | 商品的展示地址 |
微信主扫场景下acc_busi_fields域内容
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| timeout_express | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。建议不超过15分钟。不传值则默认5分钟。(微信主扫下单上送的失效时间,是控制prepay_id调起支付的有效时间。微信后台不会根据失效时间发起关单。 如需关单,调用关单接口。) |
| sub_appid | 子商户公众账号ID | C | String(32) | 微信分配的子商户公众账号ID,sub_appid(即微信小程序支付-71、公众号支付-51、微信app支付-61),此参数必传,只对微信支付有效 工行数字钱包情况下,该字段上送工行的openId 拉卡拉钱包情况下,该字段上送LAKALA的userId |
| user_id | 用户标识 | C | String(64) | 用户在子商户sub_appid下的唯一标识,sub_openid,(即微信小程序支付-71、众号支付-51),此参数必传,只对微信支付有效 |
| detail | 商品详情 | C | String(1024) | 单品优惠功能字段,详见下文说明 |
| goods_tag | 订单优惠标记 | C | String(32) | 订单优惠标记,微信平台配置的商品标记,用于优惠券或者满减使用,accountType为WECHAT时,可选填此字段 |
| attach | 附加域 | C | String(128) | 该字段主要用于商户携带订单的自定义数据。商户定制字段,直接送到账户端。 |
| device_info | 设备号 | C | String(32) | 终端设备号(门店号或收银设备ID),注意:PC网页或JSAPI支付请传”WEB” |
| limit_pay | 指定支付方式 | C | String(20) | no_credit–指定不能使用信用卡支付 |
| scene_info | 场景信息 | C | String(256) | 该字段用于上报场景信息,目前支持上报实际门店信息。 |
| limit_payer | 限定支付 | C | String(8) | ADULT:成年人 |
微信detail字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| cost_price |
| C | String(12) | 1.商户侧一张小票订单可能被分多次支付,订单原 价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以 享受多次优惠的情况,正常支付订单不必上传此参 数。 如:608800 |
| receipt_id |
| C | String(12) | 商家小票 ID |
| goods_detail |
| M | Object | 单品信息,使用Json数组格式提交,见示例 |
微信goods_detail字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| goods_id |
| M | String(32) | 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。如“商品编码” |
| wxpay_goods_id |
| C | String(32) | 微信支付定义的统一商品编号 |
| goods_name |
| C | String(256) | 商品的实际名称 |
| quantity |
| M | int | 用户购买的数量 |
| price |
| M | int | 单位为:分。如果商户有优惠,需传输商户优惠后的单价 |
银联云闪付主扫场景下acc_busi_fields域内容
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| user_id | 用户id | C | String(64) | JS获取用户标识返回码不为34时,必送(详情请参考用户标识查询接口) |
| timeout_express | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。如果在有效时间内没有完成付款,则在账户端该订单失效。如果不上送,以账户端订单失效时间为准。 建议不超过15分钟。不传值则默认5分钟。 |
| acq_addn_data_order_info | 银联订单信息(暂不支持) | C | String(600) | 银联单品营销订单信息 |
| acq_addn_data_goods_info | 银联商品信息(暂不支持) | C | String(6000) | 银联单品营销商品信息 |
| front_url | 银联前台通知地址 | C | String(256) | 收款方向银联推送订单时上送的前台通知地址(仅允许为外网地址),用户完成支付点击,“返回”后,银联通过浏览器POST请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段 |
| front_fail_url | 银联失败交易前台通知地址 | C | String(256) | 收款方向银联推送订单时上送的失败交易前台通知地址(仅允许为外网地址),用户支付过程中交易失败,点击“返回”后,银联通过浏览器GET请求到该地址。 当transType为JSAPI,payMode为UQRCODEPAY时,可选填此字段,需与frontUrl同时出现,未上送默认为frontUrl的值 |
| instal_will | 分期意愿 | C | String(1) | 0: 不分期(缺省) 1:分期 |
| un_qrcode | 银联二维码qrcode | C | String(1000) | 商户二维码表示的URL |
网联小钱包acc_busi_fields域内容
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| nuc_issr_id | 小钱包金融机构编号 | C | String(64) |
|
响应报文
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| merchant_no | 商户号 | M | String(32) | 拉卡拉分配的商户号(请求接口中商户号) |
| out_trade_no | 商户请求流水号 | M | String(32) | 请求报文中的商户请求流水号 |
| trade_no | 拉卡拉交易流水号 | M | String(32) | 拉卡拉交易流水号 |
| log_no | 拉卡拉对账单流水号 | M | String(14) | 拉卡拉对账单流水号 |
| settle_merchant_no | 结算商户号 | M | String(32) | 拉卡拉分配的商户号 |
| settle_term_no | 结算终端号 | M | String(32) | 拉卡拉分配的业务终端号 |
| acc_resp_fields | 账户端返回信息域 | C | Object | 账户端返回信息域 |
支付宝(41-NATIVE)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| code | 二维码信息 | M | String(256) | 商户可用此参数自定义去生成二维码后展示出来进行扫码支付 |
| code_image | 二维码图片内容 | M | String(256) | 商户收款二维码图片。Base64编码,暂无 |
| sub_mch_id | 子商户号 | C | String(20) | 账户端子商户号 |
支付宝(51-JSAPI)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| prepay_id | 预下单Id | M | String(32) | 预支付交易会话ID |
| sub_mch_id | 子商户号 | C | String(20) | 账户端子商户号 |
微信(71-小程序)微信(51-JSAPI)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| prepay_id | 预下单Id | M | String(32) | 预支付交易会话ID |
| pay_sign | 支付签名信息 | M | String(256) | 签名 |
| app_id | 小程序id | M | String(32) | 商户注册具有支付权限的小程序成功后即可获得小程序id |
| time_stamp | 时间戳 | M | String(32) | 当前的时间 |
| nonce_str | 随机字符串 | M | String(32) | 随机字符串 |
| package | 订单详情扩展字符串 | M | String(128) |
|
| sub_mch_id | 子商户号 | C | String(20) | 账户端子商户号 |
| sign_type | 签名方式 | M | String(32) | 签名类型,支持RSA |
银联二维码(41-NATIVE)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| code | 二维码信息 | M | String(256) | 商户可用此参数自定义去生成二维码后展示出来进行扫码支付 |
银联二维码(51-JSAPI)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| redirect_url | 银联JS支付重定向地址 | M | String(256) | 银联JS支付返回重定向地址 |
翼支付(51-JSAPI)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| best_pay_info | 翼支付JS参数 | C | String(512) | 翼支付JS参数(老网联) best_pay_info、redirect_url两者有其一 |
| redirect_url | 翼支付支付重定向地址 | C | String(256) | 翼支付支付重定向地址(新网联) |
微信(61-APP)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| prepay_id | 预下单Id | M | String(32) | 预支付交易会话ID |
| pay_sign | 支付签名信息 | M | String(256) | 签名 |
| app_id | 移动应用appid | M | String(32) | 商户注册具有支付权限的安卓/IOSAPP成功后即可获得移动应用appid |
| time_stamp | 时间戳 | M | String(32) | 当前的时间 |
| nonce_str | 随机字符串 | M | String(32) | 随机字符串 |
| package | 订单详情扩展字符串 | M | String(128) |
|
| sign_type | 签名方式 | M | String(32) | 签名类型,支持RSA |
| partner_id | 从业机构号 | M | String(32) |
|
| sub_mch_id | 子商户号 | C | String(20) | 账户端子商户号 |
示例
请求报文
{
"out_org_code": "OP00000003",
"req_data": {
"acc_busi_fields": {
"detail": "{"goods_detail":[{"goods_id":"123131311","goods_name":"\u79f0\u91cd\u83dc\u54c","quantity":1,"price":1073},{"goods_id":"223131212","goods_name":"2\u5143\u81ea\u52a9","quantity":1,"price":200}]}",
"goods_tag": "ceshi",
"sub_appid": "wx68edd02e",
"scene_info": "{\"store_info\":{\"id\": \"123\",\"name\": \"456\",\"area_code\": \"2345\",\"address\": \"地址\" }}",
"user_id": "oO2Dq0ny0C"
},
"account_type": "WECHAT",
"location_info": {
"request_ip": "123.72.62.189"
},
"merchant_no": "8221000506X5",
"notify_url": "https://testca/notify",
"out_trade_no": "0000023900289053",
"term_no": "A04753",
"total_amount": "50",
"trans_type": "51"
},
"req_time": "20220225222402",
"version": "3.0"
}{
"req_data": {
"merchant_no": "822290070111135",
"term_no": "29034705",
"out_trade_no": "KFPT20211018163339745459405",
"account_type": "UQRCODEPAY",
"trans_type": "51",
"total_amount": "100",
"location_info": {
"request_ip": "12.34.56.78",
"base_station": "00 6361 58130",
"location": "+37.123456789,-121.123456789"
},
"busi_mode": "ACQ",
"subject": "自动化测试",
"pay_order_no": "",
"notify_url": "",
"settle_type": "",
"remark": "",
"identity_info": "",
"promo_info": "",
"acc_busi_fields": {
"user_id": "Wek52a9hYY3zXbQ7JSrvZwiPa9lYJ7HyC+MqdjIbrSL21YT1H/v0WrgncHoRmsmZ",
"timeout_express": "",
"acq_addn_data_order_info": "",
"acq_addn_data_goods_info": "",
"front_url": "",
"front_fail_url": ""
}
},
"req_time": "20211018163339",
"version": "3.0",
"out_org_code": "OP00000003"
}复制响应报文
{
"msg": "成功",
"resp_time": "20211018165606",
"code": "BBS00000",
"resp_data": {
"out_trade_no": "KFPT20211018165606301458020",
"trade_no": "2021101866210004200101",
"log_no": "66210004200101",
"settle_merchant_no": "",
"settle_term_no": "",
"acc_resp_fields": {
"code": "https://qr.test.95516.com/UP02/qrcGtwWeb-web/front/confirmOrder?sessionId=c0b60813735d42838e761e47a84e000a",
"code_image": "",
"prepay_id": "",
"pay_sign": "",
"time_stamp": "",
"nonce_str": "",
"package": "",
"sign_type": "",
"redirect_url": "",
"best_pay_info": ""
}
}
}复制