调用地址
使用HTTP协议,POST方式提交。
测试环境:https://test.wsmsd.cn/sit/api/v3/dcp/trans/preorder
生产环境:https://s2.lakala.com/api/v3/dcp/trans/preorder
请求报文
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| merchant_no | 商户号 | M | String(32) | 拉卡拉分配的商户号 |
| term_no | 终端号 | M | String(32) | 拉卡拉分配的业务终端号 |
| out_trade_no | 商户交易流水号 | M | String(32) | 商户系统唯一,同一个商户号下不要重复。 |
| account_type | 钱包类型 | M | String(32) | 微信:WECHAT 支付宝:ALIPAY 微企付:ENTPAY |
| trans_type | 接入方式 | M | String(2) | 41:NATIVE(微信Native,支付宝Native) 51:JSAPI(微信公众号支付,支付宝服务窗支付) 61:APP支付(微企付APP支付) 71:小程序支付(微信小程序支付、支付宝小程序支付、微企付小程序支付) 81:H5支付(微企付H5支付) |
| total_amount | 金额 | M | String(12) | 单位分,整数型字符 |
| location_info | 地址位置信息 | M | Object | 地址位置信息,风控要求必送 |
| subject | 订单标题 | C | String(128) | 标题,用于简单描述订单或商品主题 (账户端控制该字段长度,间连方式下该字段小于42位) |
| notify_url | 商户通知地址 | C | String(128) | 商户通知地址,如上传,则按此地址通知商户 |
| remark | 备注 | C | String(128) | 商户交易备注信息 |
| store_id | 商户门店编号(商户自定义) | C | String(32) | 商户门店编号 |
| store_name | 商户门店名称 | C | String(64) | 商户门店名称 |
| acc_busi_fields | 账户端业务信息域 | C | Object | 账户端业务信息域 |
location_info字段说明
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| request_ip | 请求方IP地址 | C | String(64) | 请求方的IP地址,格式如36.45.36.95 request_ip、base_station、location必须上送一个,建议优先送request_ip |
| base_station | 基站信息 | C | String(128) | 客户端设备的基站信息(主扫时基站信息使用该字段) |
| location | 纬度经度 | C | String(32) | 商户终端的地理位置,存在必填 格式:纬度,经度,+表示北纬、东经,-表示南纬、 西经,精度最长支持小数点后9位。举例:+37.123456789,-121.123456789 |
支付宝支付情况下accBusiFields字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| user_id | 买家在支付宝的用户id | M | String(64) | 支付宝的buyer_user_id |
| timeout_express | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。如果在有效时间内没有完成付款,则在账户端该订单失效。如果不上送,以账户端订单失效时间为准。 建议不超过15分钟。不传值则默认5分钟。 |
| extend_params | 业务扩展参数 | C | String(1024) | 支付宝花呗业务扩展参数 ,见说明 |
| goods_detail | 商品详情 | C | String(6000) | 订单包含的商品列表信息,Json格式。 |
| alipay_store_id | 商户门店编号 | C | String(32) | 支付宝收单上送,送到支付宝store_id参数中 |
| query_options | 支付宝查询选项 | C | List<> | 支付宝收单上送 |
支付宝extendParams字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 说明 | 必选 |
| 备注 |
|---|
| sysServiceProviderId | 服务商的PID | C | String(64) | 系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的 PID |
| hbFqNum | 花呗分期期数 | M | String(5) | 支付宝花呗分期必送字段: 花呗分期数 3:3期 6:6期 12:12期 |
| hbFqSellerPercent | 卖家承担手续费比例 | M | String(3) | 支付宝花呗分期必送字段: 卖家承担收费比例,商家承担手续费传入100,用户承担手续费传入0,仅支持传入100、0两种,其他比例暂不支持 100:代表商家贴息 0:代表用户承担手续费 |
| dynamicTokenOutBizNo | 外部业务号 | C | String(128) | 填写alipay.marketing.facetoface.decode.use接口中上送的sence_no字段,类型为String, 枚举值20170718xxxxxxxx |
| foodOrderType | 点餐场景类型 | C | String | 点餐场景类型:QR_FOOD_ORDER(点餐先付), P_QR_FOOD_ORDER(点餐后付), TAKE_OUT(餐饮外卖), SELF_PICK(门店自提) |
| presetPayTool | 支卡通相关参数 | C | String(256) | 业务可根据场景是否需要叠加营销,选择以下两种传参方式。叠加营销场景:forceUse-N(支卡通可叠加营销,使用支卡通金额以异步通知为准)屏蔽营销场景:forceUse-Y(支卡通不可叠加营销,使用支卡通金额为传入的amount,单位元) 示例:”{"MERCHANTCARD_ZKT":[{"amount":"0.01","forceUse":"N"}]}” |
支付宝businessParams字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 说明 | 必选 |
| 备注 |
|---|
| scenePayLinkInfo | 支卡通相关参数 | C | String(256) | 所有代扣订单都必须传该参数支卡通相关参数,传固定字符串。bizScene和subBizScene由支付宝侧BD提供。 {"bizProduct":"ZCARD","bizScene":"支付宝侧分配","subBizScene":"支付宝侧分配","bizMode":"MERCHANT_ORDER"} |
支付宝goodsDetail字段说明
| 中文名称 | 说明 | 必选 |
| 备注 |
|---|
| goods_id |
| M | String(32) | 商品的编号 |
| alipay_goods_id |
| C | String(32) | 支付宝定义的统一商品编号 |
| goods_name |
| M | String(256) | 商品名称 |
| quantity |
| M | String(12) | 商品数量 |
| price |
| M | String(12) | 单位为元 |
| goods_category |
| C | String(24) | 商品类目 |
| categories_tree |
| C | String(128) | 商品类目树,从商品类目根节点到叶子节点的类目 id 组成,类目 id 值使用|分 割 |
| body |
| C | String(512) | 商品描述信息 |
| show_url |
| C | String(256) | 商品的展示地址 |
微信支付情况下accBusiFields字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| sub_appid | 子商户公众账号ID | C | String(32) | 微信分配的子商户公众账号ID,sub_appid(即微信小程序支付-71、公众号支付-51),此参数必传,只对微信支付有效 工行数字钱包情况下,该字段上送工行的openId 拉卡拉钱包情况下,该字段上送LAKALA的userId |
| sub_openid | 用户标识 | C | String(64) | 用户在子商户sub_appid下的唯一标识,sub_openid,(即微信小程序支付-71、众号支付-51),此参数必传,只对微信支付有效 |
| timeout_express | 预下单有效时间 | C | String(2) | 预下单的订单的有效时间,以分钟为单位。如果在有效时间内没有完成付款,则在账户端该订单失效。如果不上送,以账户端订单失效时间为准。 建议不超过15分钟。不传值则默认5分钟。 |
| detail | 商品详情 | C | String(1024) | 单品优惠功能字段,详见下文说明 |
| goods_tag | 订单优惠标记 | C | String(32) | 订单优惠标记,微信平台配置的商品标记,用于优惠券或者满减使用,accountType为WECHAT时,可选填此字段 |
| attach | 附加域 | C | String(128) | 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据。商户定制字段,直接送到账户端。 |
| scene_info | 场景信息 | C | String(256) | 该字段常用于线下活动时的场景信息上报,支持上报实际门店信息,商户也可以按需求自己上报相关信息。 |
微信detail字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| cost_price |
| C | String(12) | 1.商户侧一张小票订单可能被分多次支付,订单原 价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以 享受多次优惠的情况,正常支付订单不必上传此参 数。 如:608800 |
| receipt_id |
| C | String(12) | 商家小票 ID |
| goods_detail |
| M | String(1024) | 单品信息,使用 Json 数组格式提交 |
微信goods_detail字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| goods_id |
| M | String(32) | 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。如“商品编码” |
| wxpay_goods_id |
| C | String(32) | 微信支付定义的统一商品编号 |
| goods_name |
| C | String(256) | 商品的实际名称 |
| quantity |
| M | String(12) | 用户购买的数量 |
| price |
| M | String(12) | 单位为:分。如果商户有优惠,需传输商户优惠后的单价 |
银联支付情况下accBusiFields字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| user_id | 用户id | M | String(64) |
|
| 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的值 |
微企付情况下accBusiFields字段说明
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| purchaser_type | 指定付款类型 | C |
| 指定付款类型(个人付款卡号:INDIVIDUAL_CARD 个人付款人姓名:INDIVIDUAL_NAME企业名称:ENTERPRISE) |
| channel_options |
|
| String | 渠道选项,指定收银台支持的付款渠道 |
| payer | 付款方信息 | C | String | 付款方信息 |
| memo |
| C | string(1, 128) | 附言,只支持空格、中文、数字、英文大小写、下划线、全角半角的连字符、逗号和句号 |
| detail | 商品信息 | M | array[object] (1,5) | 商品信息,建议上送不多于5种商品信息 |
| attach | 订单附加信息 | C | string(1, 255) | 订单附加信息,附加数据,在查询API中原样返回,可作为自定义参数使用 |
| risk_control | 风控信息 | C | String |
|
| front_callback_url | 前端回跳地址 | M | String | 前端回跳地址,支付结果通知,包含所有前端类型的通知地址 |
| area_code | 地区编号 | C |
| 地区编号,详细地区编号信息可参照:微企付官方文档 |
| profit_allocation_flag | 分账标识 | C |
| (NO_PROFIT_ALLOCATION:无需分账,profit_allocation_flag不传时默认为无需分账API_PROFIT_ALLOCATION:需要分账) |
微企付channelOptions字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
include_bank_snames与exclude_ban_snames不可同时填写
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| include_bank_snames | 指定银行简称列表 | C | array[String] | 银行简称,指定收银台不支持的银行列表,例如平安银行为:PAB |
| exclude_ban_snames | 指定排除银行简称列表 | C | array[String] | 银行简称,指定收银台不支持的银行列表,例如平安银行为:PAB |
| include_pay_channels | 指定支付渠道 | C | array[String] | 指定支付渠道(个人银行卡:INDIVIDUAL企业网银:ENTERPRISE微信零钱:WX_BALANCE) |
| exclude_pay_channels | 指定排除支付渠道 | C | array[String] | 指定排除支付渠道(个人银行卡:INDIVIDUAL企业网银:ENTERPRISE微信零钱:WX_BALANCE) |
微企付payer字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| payer_name |
| C | string(1, 256) | 当purchaser_type为ENTERPRISE时,该字段必须设置为付款企业名称,当purchaser_type为INDIVIDUAL_NAME时,该字段必须设置为指定个人付款人姓名 |
微企付detail字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| good_name |
| M | string(1, 255) | 商品名称 |
| good_number |
| M | integer(int32) | 商品数量 |
| good_amount |
| M | integer(int32) | 单位为:分。商品金额 |
微企付riskControl字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| device_id |
| C | string(1, 32) | 设备号,终端设备号(门店号或收银设备ID) |
| payer_client_ip |
| M | string(1, 45) | 用户终端IP,用户端实际ip,示例值:14.17.22.32 |
| payer_ua |
| M | string(1, 1000) | 用户UA,浏览器User-Agent |
| pick_type |
| C | String | 提货方式(自提:SELF_PICK 物流:LOGISTICS 改归属:CHANGE_OWNER) |
| pick_description |
| C | string(1, 256) | 提货描述 |
微企付frontCallbackUrl字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| android_url |
| M | string(1,256) | APP-Android 支付完成前端回跳url(app下单填写) |
| ios_url |
| M | string(1,1024) | App-IOS 支付完成前端回跳url(app下单填写) |
| mp_path |
| M | string(1, 1024) | Mp 支付完成前端回跳小程序路径,路径和参数内容由开发者设置,受环境限制目前腾讯微企付在 iOS 里使用 wx.navigateBackMiniProgram ,在 Android 里使用wx.navigateToMiniProgram 回跳到你的小程序,建议路径为订单详情或结果页,onShow 时查询最新的订单状态按需展示(小程序下单填写) |
| mp_appid |
| M | string(1, 64) | Mp 支付完成前端回跳小程序appid(小程序下单填写) |
| mp_username |
| C | string(1, 64) | Mp 支付完成前端回跳小程序原始id(小程序下单填写) |
| mp_urlscheme |
| C | string(1, 64) | Mp 支付完成前端回跳小程序urlscheme(小程序下单填写) |
| h5_url |
| C | string(1,1024) | 微信h5页面回跳地址,支付成功后回跳到指定的页面(H5下单填写) |
响应报文
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| out_trade_no | 商户请求流水号 | M | String(64) | 请求报文中的商户请求流水号 |
| settle_channel_type | 结算渠道类型 | M | String(16) | 微信:WECHAT 支付宝:ALIPAY 拉卡拉:LAKALA |
| trade_no | 平台交易流水号 | M | String(32) | 平台交易流水号 |
| acc_resp_fields | 账户端返回信息域 | C | Object | 账户端返回信息域 |
微信(71-小程序)微信(51-JSAPI)场景下accRespFields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| 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) |
|
| sign_type | 签名方式 | M | String(32) | 签名类型,支持RSA |
支付宝(41-NATIVE)场景下返回accRespFields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| code | 二维码信息 | M | String(256) | 商户可用此参数自定义去生成二维码后展示出来进行扫码支付 |
| code_image | 二维码图片内容 | M | String(256) | 商户收款二维码图片。Base64编码,暂无 |
支付宝(51-JSAPI)场景下返回accRespFields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| prepay_id | 预下单Id | M | String(32) | 预支付交易会话ID |
银联二维码(51-JSAPI)场景下返回acc_resp_fields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| redirect_url | 银联JS支付重定向地址 | M | String(256) | 银联JS支付返回重定向地址 |
微企付(71-小程序 61-app 81-H5)场景下返回accRespFields域
| 字段名 | 中文名称 | 是否必填 | 类型 | 说明 |
|---|
| code | 跳转链接 | M | String(64) |
|
| payer | 微企付付款方信息 | C | string | (app支付返回) |
| prepayId | 预下单Id | M | String(32) | 预支付交易会话ID |
| miniProgram | 小程序信息 | C | String | (小程序支付返回) |
微企付payer字段说明(该字段类型为String,非object,值为json字符串,需要加转义)
| 字段名 | 中文名称 | 必选 |
| 备注 |
|---|
| payer_name |
| C | string(1, 256) | 当purchaser_type为ENTERPRISE时,该字段必须设置为付款企业名称,当purchaser_type为INDIVIDUAL_NAME时,该字段必须设置为指定个人付款人姓名 |
| out_payer_id |
| C | string(1, 128) | 平台付款方Id,即合作平台的用户id,付款方在平台的唯一id,只支持英文大小写以及数字 |
| payer_acct_last4 |
| C | string(4,4) | 付款方付款银行后四位 |
示例
请求报文:
{
"req_time": "20220207142827",
"version": "3.0",
"req_data": {
"merchant_no": "82229005812059B",
"term_no": "A0104508",
"out_trade_no": "KFPT20220207142827914820665",
"account_type": "WECHAT",
"trans_type": "41",
"total_amount": "1",
"location_info": {
"request_ip": "127.0.0.1",
"base_station": "00 6361 58130",
"location": "+37.123456789,-121.123456789"
},
"subject": "自动化测试",
"notify_url": "http://run.mocky.io/v3/b02c9448-20a2-4ff6-a678-38ecab30161d",
"remark": "",
"store_id": "",
"store_name": "",
"acc_busi_fields": {
"sub_appid": "wx9ef39b708f164d",
"sub_openid": "olpr-0sDrT5GmLUgUenVcDPo",
"goods_tag": "",
"attach": "",
"timeout_express": "",
"detail": ""
}
}
}
复制
响应报文:
{
"code": "DCP00000",
"msg": "成功",
"resp_time": "20220207142828",
"resp_data": {
"out_trade_no": "KFPT20220207142827914820665",
"trade_no": "2022020733210004680036",
"settle_channel_type": "WECHAT",
"acc_resp_fields": {
"code": "weixin://wxpay/bizpayurl?pr=iKq5yFPzz",
"code_image": null,
"prepay_id": "wx07142828576915c9ba21d215d93faf0000",
"app_id": null,
"pay_sign": null,
"time_stamp": null,
"nonce_str": null,
"sign_type": null
}
}
}