交易请求报文

JSON:

  1. {
  2. "request_type": "bcm_ordercreate_request",
  3. "isspid": "39493002",
  4. "pos_id": "1511300001",
  5. "store_id": "1511300001",
  6. "pos_seq": "2018121400000004",
  7. "user_id": "user01",
  8. "system_id": "8888",
  9. "memo": "订单备注",
  10. "bcm_ordercreate_request": {
  11. "pos_sn": "",
  12. "terminal_id": "0001045907",
  13. "tx_amt": "1",
  14. "notify_url": "http://www.baidu.com/",
  15. "goods_detail": [
  16. {
  17. "goods_name": "啊ipad",
  18. "quantity": 1,
  19. "price": 200000
  20. },
  21. {
  22. "goods_name": "额ipad2",
  23. "quantity": 1,
  24. "price": 200000
  25. }
  26. ],
  27. "extend_params": {
  28. "split_flag": "R",
  29. "plan_split_date": "20230418",
  30. "split_info": {
  31. "keep_amt": "800",
  32. "split_list": [
  33. {
  34. "merchant_id": "10000000000001",
  35. "div_amt": "150"
  36. },
  37. {
  38. "merchant_id": "10000000000002",
  39. "div_amt": "50"
  40. }
  41. ]
  42. }
  43. }
  44. },
  45. "sign": "314DA43E7E244105ECBD45F797264854"
  46. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <request_type>bcm_ordercreate_request</request_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <store_id>1511300001</store_id>
  7. <pos_seq>1511300000002</pos_seq>
  8. <user_id>user01</user_id>
  9. <system_id>8888</system_id>
  10. <memo>订单备注</memo>
  11. <bcm_ordercreate_request>
  12. <pos_sn></pos_sn>
  13. <terminal_id>0001045907</terminal_id>
  14. <tx_amt>1</tx_amt>
  15. <notify_url><![CDATA[http://www.baidu.com/]]></notify_url>
  16. <extend_params><![CDATA[
  17. {
  18. "split_flag": "R",
  19. "plan_split_date": "20230418",
  20. "split_info": {
  21. "keep_amt": "800",
  22. "split_list": [
  23. {
  24. "merchant_id": "10000000000001",
  25. "div_amt": "150"
  26. },
  27. {
  28. "merchant_id": "10000000000002",
  29. "div_amt": "50"
  30. }
  31. ]
  32. }
  33. }
  34. ]]></extend_params>
  35. <goods_detail><![CDATA[
  36. [
  37. {
  38. "goods_name": "啊ipad",
  39. "quantity": 1,
  40. "price": 200000
  41. },
  42. {
  43. "goods_name": "额ipad2",
  44. "quantity": 1,
  45. "price": 200000
  46. }
  47. ]
  48. ]]></goods_detail>
  49. </bcm_ordercreate_request>
  50. </business_trans>

交易请求报文说明

节点名称中文名称类型说明是否必填
sign报文签名String(32)请求报文格式为JSON时必填
计算签名方式请看2.1章节
可选
request_type请求类型String(32)固定值:bcm_ordercreate_request必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
store_id门店号String(20)商户自定义门店号必填
pos_seq支付请求流水号String(32)同一个翼码商户号下唯一,不可重复使用,且大于12位必填
user_id操作员标识String(20)操作员号可空
system_id系统平台号String(4)由翼码提供必填
memo订单备注String(128)可空
bcm_ordercreate_request
->pos_sn
刷卡POS机身号String(20)订单推送的刷卡POS设备的机身号可空
bcm_ordercreate_request
->terminal_id
刷卡POS终端号String(10)订单推送的刷卡POS设备的终端号可空
bcm_ordercreate_request
->tx_amt
订单金额Number(9)订单金额,单位为分,不支持小数点必填
bcm_ordercreate_request
->notify_url
异步通知地址String(256)异步通知文档见4.20
使用XML格式报文时,建议使用CDATA标签包裹内容
可空
bcm_ordercreate_request
->extend_params
扩展参数JSON用于扩展一些特殊的支付参数字段,详细参数见下表
使用XML格式报文时,建议使用CDATA标签包裹内容
可空
bcm_ordercreate_request
->goods_detail
商品信息JSONArray订单包含的商品信息列表,详细参数见下表
使用XML格式报文时,建议使用CDATA标签包裹内容
可空

自定义门店号(store_id)和自定义终端号(pos_id)需经过4.1终端绑定交易接口绑定成功过的值才可以调用,绑定一次即可不需要重复绑定。

关于订单推送设备的特别说明

刷卡POS机身号(pos_sn) 和 刷卡POS终端号(terminal_id)
两个节点对应不同版本的刷卡设备APP使用,不可同时使用
商户具体使用哪个节点,具体对接时与业务和技术对接人沟通
两个节点都不传,则不会推送订单,可以使用pos_seq生成二维码,刷卡设备扫码方式传递订单信息

extend_params 扩展参数 (JSON)

JSON节点类型说明是否必填范例
split_flagString分账标识
N:不分账
R:实时分账
D:延时分账
不传该节点时,将按控制台配置处理
该节点与分账功能相关具体联系业务确认开通功能
可空R
plan_split_dateString预分账日期,格式:yyyymmdd
仅延时分账类型(split_flag=D)时支持传入
可空20230418
split_infoJSON分账信息
仅支持请求实时分账split_flag=R
该节点与分账功能相关具体联系业务确认开通功能
可空 

分账业务相关的特别说明:
1. split_flag=N 不分账时,split_info不允许传入;
2. split_flag=R 实时分账时,split_info必传,其中keep_amt与div_amt叠加必须全额分完整笔订单;
3. split_flag=D 延时分账时,split_info不允许传入,在后续流程中调用延迟交易确认接口完成分账,或使用翼码分账系统界面进行分账。
4. 刷卡设备只有使用指定版本的APP,才能支持分账业务,使用前务必咨询业务或技术对接人

split_info 分账信息

JSON节点类型说明是否必填范例
is_clean_splitStringN:不使用净值分账
Y:使用净值分账
不传默认为N,即不使用净值分账
净值分账目前仅对部分通道开放,使用此能力前请先与技术支持确认
净值分账仅在交易手续费内扣时才起作用
当使用净值分账时,分账信息和分账明细必须要传分账比例,且分账方自留比例(keep_percentage)与所有分账比例(div_percentage)之和必须要为100%
可空Y
keep_amtString分账方自留金额,单位为分,可传0表示不自留
不使用净值分账(is_clean_split=N)时,该节点必填,分账方自留比例(keep_percentage)节点无效
可空1000
keep_percentageString分账方自留比例,单位为%,最多支持小数点后两位,可传0表示不自留
使用净值分账(is_clean_split=Y)时,该节点必填,分账方自留金额(keep_amt)节点无效
可空50.26
split_listArray分账明细必填 
split_list 分账明细
JSON节点类型说明是否必填范例
merchant_idString分账接收方的分账商户号必填10000000000001
div_amtString分账金额,单位为分,必须大于0
不使用净值分账(is_clean_split=N)时,该节点必填,分账比例(div_percentage)节点无效
可空1000
div_percentageString分账比例,单位为%,最多支持小数点后两位,必须大于0
使用净值分账(is_clean_split=Y)时,该节点必填,分账金额(div_amt)节点无效
可空23.55

若业务涉及100%分账给接收方,请于业务对接人联系申请使用净值分账功能。

extend_params 样例:

  1. {
  2. "split_flag": "R",
  3. "plan_split_date": "20230418",
  4. "split_info": {
  5. "keep_amt": "800",
  6. "split_list": [
  7. {
  8. "merchant_id": "10000000000001",
  9. "div_amt": "150"
  10. },
  11. {
  12. "merchant_id": "10000000000002",
  13. "div_amt": "50"
  14. }
  15. ]
  16. }
  17. }

goods_detail 商品信息 (JSONArray)

JSON节点类型说明是否必填范例
goods_nameString(256)商品名称必填ipad
quantityNumber(9)商品数量必填1
priceNumber(8)商品单价,单位为分必填200000

goods_detail 样例:

  1. [
  2. {
  3. "goods_name": "啊ipad",
  4. "quantity": 1,
  5. "price": 200000
  6. },
  7. {
  8. "goods_name": "额ipad2",
  9. "quantity": 1,
  10. "price": 200000
  11. }
  12. ]

交易返回报文

JSON:

  1. {
  2. "response_type": "bcm_ordercreate_response",
  3. "isspid": "39493002",
  4. "pos_id": "6666666666",
  5. "pos_seq": "2018121400000004",
  6. "trans_time": "20181214143516",
  7. "sys_seq": "0741136885a748c1",
  8. "result": {
  9. "id": "9998",
  10. "comment": "创建订单成功"
  11. },
  12. "sign": "F6106656C20AB23B547B0C30DD819793"
  13. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <response_type>bcm_ordercreate_response</response_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <pos_seq>1511300000002</pos_seq>
  7. <sys_seq>0311095321465179</sys_seq>
  8. <trans_time>20160311095321</trans_time>
  9. <result>
  10. <id>9998</id>
  11. <comment>创建订单成功</comment>
  12. </result>
  13. </business_trans>

交易返回报文说明

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!

节点名称中文名称类型说明是否必填
sign报文签名String(32)返回报文格式为JSON时必填
计算签名方式请看2.1章节
可选
response_type返回类型String(32)固定值:bcm_ordercreate_response必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
pos_seq支付请求流水号String(32)支付请求流水号,和请求报文相同
创建订单成功(id=9998)之后,将该字段作为二维码内容生成,使用POS扫码
必填
sys_seq随机串号String(16)随机生成串号,仅用于日志跟踪用,不保存必填
trans_time接口返回时间String(14)接口返回时间,格式:yyyyMMddHHmmss必填
result
->id
响应码String(4)银行卡刷卡下单时返回 9998 表示创建订单成功,进入轮询调用银行卡刷卡查询接口确认交易结果
其它失败,错误信息说明见“响应码解释”字段
必填
result
->comment
响应码解释String(64)响应码对应中文注解,用于显示提示必填

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!