[关闭]
@931876502 2016-07-22T21:00:08.000000Z 字数 10864 阅读 531

腾讯微信条码支付接口文档


txpay API

版本号:1.0.0
部门:研发部
岗位:服务端开发人员
姓名:杨松
建立日期:2016-7-4
最后更新日期:2016-7-6

调试工具

POSTMAN 测试连接:https://www.getpostman.com/collections/c7e230329be1b1910b6e

POSTMAN DOMAIN 环境变量 env

{{TXPAY}}

TEST =
DEVE = http://txpay.dev.dlhis.com/
PREPRO = http://txpay.dlhis.com/
PRODUCTION = http://txpay.dlhis.com/


statusNo错误码对照表

错误码 说明 业务状态
200 业务成功 SUCCESS
401 token过期 FAILED
10406 有参数为空或者参数错误 FAILED
10409 业务操作失败 FAILED
10500 与微信通信失败
向微信发起请求失败
FAILED

APIDOCS

AT模块

API.AT00 腾讯条码支付 注册

参数说明:

参数 中文名称 类型 举例 说明 参数位置
cpiName 酒店或公司名称 String 测试酒店 必填 RequestBody中
storeNo 自定义分店号 String store001 必填 RequestBody中
storeDogNo 硬件设备号 String dogno001 必填 RequestBody中
appId 微信公众号appid String 123456789 必填
向微信申请的公众号appid
RequestBody中
AppSecret 密钥 String secret001 必填
迪联分配给企业的激活码(开通
微信支付需要向运营人员申请)
RequestBody中
mchId 微信商户号 String 1355998902 必填
向微信申请微信支付的商户id
RequestBody中
logId 操作员编号 String operate001 必填
操作员编号
RequestBody中
dealerNo 代理商编号 String DLHIS 非必填
如果该参数为空那么
默认代理商为DLHIS
RequestBody中

sendData:

  1. {
  2. "cpiName": "测试酒店",
  3. "storeNo": "store001",
  4. "storeDogNo": "dogno001",
  5. "appId": "123456789",
  6. "AppSecret": "secret001",
  7. "mchId": "1355998902",
  8. "logId": "operate001"
  9. "dealerNo":"DLHIS"
  10. }

response:

  1. {
  2. "data": "EAB8FD09C4B1D09C",
  3. "err": "nothing",
  4. "msg": "success",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 200,
  8. "version": "1.0.0"
  9. }

fail response

  1. {
  2. "code": "INVALIDREQUEST",
  3. "data": {},
  4. "err": "NOTEMPTY_FIELD_CPINAME_ON_SIGNUPREQ",
  5. "fieldErrors": [
  6. {
  7. "code": "NotEmpty",
  8. "field": "cpiName",
  9. "message": "企业名称不得为空-cpiName",
  10. "resource": "signUpReq"
  11. }
  12. ],
  13. "message": "NOTEMPTY_FIELD_CPINAME_ON_SIGNUPREQ",
  14. "msg": "企业名称不得为空-CPINAME",
  15. "re": {},
  16. "reErr": {},
  17. "statusNo": 400,
  18. "version": "1.0.0"
  19. }

返回值说明:

  1. data:
    • 成功会返回token,用于之后订单业务接口请求,有效时间为2小时
    • 失败为空
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 成功时为nothing
  6. msg : 错误说明 成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 成功时为200
  10. version : API版本 当前版本为1.0.0

ps:业务说明

1.一个门店需要单独使用一个AppSecret,即AppSecret不可重复
2.如果两个或多个门店的appId相同,那么认为这多个门店属于同一家酒店或公司
3.cpiName以第一次申请注册为准,即2号门店注册填写的名称与1号门店不同时采用的是1号门店的名称

API.AT01 腾讯条码支付 获取token

参数说明:

参数 中文名称 类型 举例 说明 参数位置
appSecret 密钥 String EAB8FD09C4B1D09C 必填 URL
storeNo 自定义分店号 String store001 必填 URL
logId 操作员编号 String operater001 必填 URL

sendData:

  1. logId=1001&storeNo=store001&appSecret=secret001

response:

  1. {
  2. "data": "67AA29CEE66FA6E2",
  3. "err": "nothing",
  4. "msg": "success",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 200,
  8. "version": "1.0.0"
  9. }

fail response

  1. {
  2. "code": "INVALIDREQUEST",
  3. "data": {},
  4. "err": "NOTEMPTY_FIELD_LOGID_ON_SIGNINREQ",
  5. "fieldErrors": [
  6. {
  7. "code": "NotEmpty",
  8. "field": "logId",
  9. "message": "员工工号不得为空",
  10. "resource": "signInReq"
  11. }
  12. ],
  13. "message": "NOTEMPTY_FIELD_LOGID_ON_SIGNINREQ",
  14. "msg": "员工工号不得为空",
  15. "re": {},
  16. "reErr": {},
  17. "statusNo": 400,
  18. "version": "1.0.0"
  19. }

返回值说明:

  1. data:
    • 成功会返回token,用于之后订单业务接口请求,有效时间为2小时
    • 失败为空
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 成功时为nothing
  6. msg : 错误说明 成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 成功时为200
  10. version : API版本 当前版本为1.0.0

OD模块

API.OD01 腾讯条码支付 下单

参数说明:

参数 中文名称 类型 举例 说明 参数位置
token 之前注册或登陆时
产生的访问令牌
String 67AA29CEE66FA6E2 必填 URL或者headers;
建议放在headers
authCode 用户支付授权码 String 130535872891365770 必填
扫描用户微信条形码或
者二维码生成的授权码
RequestBody中
storeOrderNo 本地订单号 String TEST00006 必填
本地订单号不可重复
是查询撤单的依据
RequestBody中
body 支付主题 String 辣条 必填 RequestBody中
detail 订单详情 LIST [] 必填
商品详情可为空LIST
但不可为NULL
RequestBody中
totalFee 订单总金额 String 1 必填
正整数单位为分
RequestBody中
limitPay 限制支付方式 String "" 必填
可为空字符串
但不可为NULL
RequestBody中

sendData:

  1. {
  2. "authCode": "130535872891365770",
  3. "storeOrderNo": "TEST00006",
  4. "body": "辣条",
  5. "detail": [],
  6. "totalFee": "1",
  7. "limitPay": ""
  8. }

response:

  1. {
  2. "data": {
  3. "appid": "wxb6fd9be5de96a33a",
  4. "attach": "DL20160701000001,store001,TEST00009",
  5. "bank_type": "ABC_DEBIT",
  6. "device_info": "store001",
  7. "fee_type": "CNY",
  8. "is_subscribe": "Y",
  9. "mch_id": "1334531301",
  10. "nonce_str": "KkGmlKHPtSaiL0Ds",
  11. "openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
  12. "out_trade_no": "13559989020002160704000004",
  13. "result_code": "SUCCESS",
  14. "return_code": "SUCCESS",
  15. "return_msg": "OK",
  16. "sign": "5DB50BD8E96BB8F3189E24EF685525A0",
  17. "time_end": "20160704105645",
  18. "total_fee": "1",
  19. "trade_type": "MICROPAY",
  20. "transaction_id": "4006302001201607048343317589"
  21. },
  22. "err": "nothing",
  23. "msg": "success",
  24. "re": {},
  25. "reErr": {},
  26. "statusNo": 200,
  27. "version": "1.0.0"
  28. }

fail response token失效

  1. {
  2. "data": {},
  3. "err": "TOKEN_FAILED",
  4. "msg": "TOKEN不存在或已过期,请重新获取",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 401,
  8. "version": "1.0.0"
  9. }

authCode重复

  1. {
  2. "data": {},
  3. "err": "AUTHCODEEXPIRE",
  4. "msg": "每个二维码仅限使用一次,请刷新再试",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 10409,
  8. "version": "1.0.0"
  9. }

返回值说明:

  1. data:
    • 成功会返回微信支付操作的响应结果
    • 失败为空
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 成功时为nothing
  6. msg : 错误说明 成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 成功时为200
  10. version : API版本 当前版本为1.0.0

ps:业务说明

1.storeOrderNo不可重复

err :错误消息之常见错误:

名称 描述 支付状态 原因 解决方案
SYSTEMERROR 接口返回错误 支付结果未知 系统超时 请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。
NOAUTH 商户无权限 支付确认失败 商户没有开通被扫支付权限 请开通商户号权限。请联系产品或商务申请
AUTHCODEEXPIRE 二维码已过期,请用户在微信上刷新后再试 支付确认失败 用户的条码已经过期 请收银员重新扫码。
NOTENOUGH 余额不足 支付确认失败 用户的零钱余额不足 用户余额不足.提示用户换卡支付
NOTSUPORTCARD 不支持卡类型 支付确认失败 用户使用卡种不支持当前支付形式 该卡不支持当前支付,提示用户换卡支付或绑新卡支付
ORDERCLOSED 订单已关闭 支付确认失败 该订单已关 商户订单号异常,请重新下单支付
ORDERREVERSED 订单已撤销 支付确认失败 当前订单已经被撤销 当前订单状态为“订单已撤销”,请用户重新支付
BANKERROR 银行系统异常 支付结果未知 银行端超时 请立即调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
USERPAYING 用户支付中,需要输入密码 支付结果未知 该笔交易因为业务规则要求,需要用户输入支付密码。 等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
AUTH_CODE_ERROR 授权码参数错误 支付确认失败 请求参数未按指引进行填写 每个二维码仅限使用一次,请刷新再试
AUTH_CODE_INVALID 授权码检验错误 支付确认失败 收银员扫描的不是微信支付的条码 请扫描微信支付被扫条码/二维码
SIGNERROR 签名错误 支付确认失败 参数签名结果不正确 请检查签名参数和方法是否都符合签名算法要求
NOT_UTF8 编码格式错误 支付确认失败 未使用指定编码格式 请使用UTF-8编码格式
OUT_TRADE_NO_USED 商户订单号重复 支付确认失败 同一笔交易不能多次提交 请核实商户订单号是否重复提交

API.OD02 腾讯条码支付 支付查询

参数说明:

参数 中文名称 类型 举例 说明 参数位置
storeOrderNo 下单时的本地订单号 String TEST00006 必填 URL
token 用户授权令牌 String 67AA29CEE66FA6E2 必填 URL或者headers;
建议放在headers

sendData:

  1. storeOrderNo=TEST00006

response:

  1. {
  2. "data": {
  3. "cpiNo": "DL20160701000001",
  4. "createTime": "2016-07-04 10:56:46",
  5. "orderOutTradeNo": "13559989020002160704000004",
  6. "orsData": {
  7. "transaction_id": "4006302001201607048343317589",
  8. "nonce_str": "KkGmlKHPtSaiL0Ds",
  9. "bank_type": "ABC_DEBIT",
  10. "openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
  11. "sign": "5DB50BD8E96BB8F3189E24EF685525A0",
  12. "return_msg": "OK",
  13. "fee_type": "CNY",
  14. "mch_id": "1334531301",
  15. "device_info": "store001",
  16. "out_trade_no": "13559989020002160704000004",
  17. "appid": "wxb6fd9be5de96a33a",
  18. "total_fee": "1",
  19. "trade_type": "MICROPAY",
  20. "result_code": "SUCCESS",
  21. "attach": "DL20160701000001,store001,TEST00009",
  22. "time_end": "20160704105645",
  23. "is_subscribe": "Y",
  24. "return_code": "SUCCESS"
  25. },
  26. "orsId": 3,
  27. "storeNo": "store001",
  28. "txqsTradeState": "SUCCESS",
  29. "txrsBankType": "ABC_DEBIT",
  30. "txrsCashFee": 0,
  31. "txrsCouponFee": 0,
  32. "txrsErrCode": "",
  33. "txrsErrCodeDes": "",
  34. "txrsOpenid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
  35. "txrsResultCode": "SUCCESS",
  36. "txrsTimeEnd": "2016-07-04 10:56:45",
  37. "txrsTotalFee": 1,
  38. "txrsTradeType": "MICROPAY",
  39. "txrsTransactionId": "4006302001201607048343317589"
  40. },
  41. "err": "nothing",
  42. "msg": "success",
  43. "re": {},
  44. "reErr": {},
  45. "statusNo": 200,
  46. "version": "1.0.0"
  47. }

fail response

  1. {
  2. "data": {
  3. "cpiNo": "DL20160701000001",
  4. "createTime": "2016-07-06 16:35:40",
  5. "orderOutTradeNo": "13559989020001160706000007",
  6. "orsData": {
  7. "nonce_str": "94slM2yza65UlJu4",
  8. "out_trade_no": "13559989020001160706000007",
  9. "trade_state": "USERPAYING",
  10. "appid": "wxb6fd9be5de96a33a",
  11. "sign": "72B10890FD88BEDEB8C0446D8DE9DE28",
  12. "result_code": "SUCCESS",
  13. "return_msg": "OK",
  14. "attach": "DL20160701000001,store001,TEST160706017",
  15. "mch_id": "1334531301",
  16. "sub_mch_id": "1355998902",
  17. "return_code": "SUCCESS"
  18. },
  19. "orsId": 30,
  20. "storeNo": "store001",
  21. "txqsTradeState": "USERPAYING",
  22. "txrsCashFee": 0,
  23. "txrsCouponFee": 0,
  24. "txrsErrCodeDes": "需要用户输入支付密码",
  25. "txrsOpenid": "",
  26. "txrsResultCode": "USERPAYING",
  27. "txrsTimeEnd": "2016-07-06 16:35:40",
  28. "txrsTotalFee": 0,
  29. "txrsTradeType": "MICROPAY",
  30. "txrsTransactionId": ""
  31. },
  32. "err": "SOMTHING_ERR",
  33. "msg": "需要用户输入支付密码",
  34. "re": {},
  35. "reErr": {},
  36. "statusNo": 10409,
  37. "version": "1.0.0"
  38. }

返回值说明:

  1. data: 返回微信支付操作的响应结果
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 成功时为nothing
  6. msg : 错误说明 成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 订单为支付成功时为200
  10. version : API版本 当前版本为1.0.0

API.OD03 腾讯条码支付 撤单

参数说明:

参数 中文名称 类型 举例 说明 参数位置
storeOrderNo 下单时的本地订单号 String TEST00006 必填 URL
token 用户授权令牌 String 67AA29CEE66FA6E2 必填 URL或者headers;
建议放在headers

sendData:

  1. storeOrderNo=TEST00006

response:

  1. {
  2. "data": {
  3. "appid": "wxb6fd9be5de96a33a",
  4. "mch_id": "1334531301",
  5. "nonce_str": "TpXhS42C4HhmD2V5",
  6. "recall": "N",
  7. "result_code": "SUCCESS",
  8. "return_code": "SUCCESS",
  9. "return_msg": "OK",
  10. "sign": "63E5FBDDAB3F71CF83E4A66AC8A91541"
  11. },
  12. "err": "nothing",
  13. "msg": "success",
  14. "re": {},
  15. "reErr": {},
  16. "statusNo": 200,
  17. "version": "1.0.0"
  18. }

fail response

  1. {
  2. "data": {},
  3. "err": "THIS_OEDER_HAS_ALREADY_REVERSE_SUCCESS",
  4. "msg": "业务错误:该订单已经成功撤销,请勿重复操作!",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 10409,
  8. "version": "1.0.0"
  9. }

返回值说明:

  1. data:
    • 成功会返回微信撤单操作的响应结果
    • 失败为空
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 撤单成功时为nothing
  6. msg : 错误说明 撤单成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 撤单成功时为200
  10. version : API版本 当前版本为1.0.0

ps:业务说明

1.撤单成功,原订单会被关闭,支付成功的金额也会原路退回
2.只有产生了腾讯订单号的订单才能进行撤单操作

err :错误消息之常见错误:

名称 描述 原因 解决方案
SYSTEMERROR 接口返回错误 系统超时 重新发起退款
INVALID_TRANSACTIONID 无效transaction_id 请求参数未按指引进行填写 参数错误,请重新检查
SIGNERROR 签名错误 参数签名结果不正确 请检查签名参数和方法是否都符合签名算法要求
REVERSE_EXPIRE 订单无法撤销 订单有7天的撤销有效期,过期将不能撤销 请检查需要撤销的订单是否超过可撤销有效期

API.OD05 腾讯条码支付 撤单查询

参数说明:

参数 中文名称 类型 举例 说明 参数位置
storeOrderNo 下单时的本地订单号 String TEST00006 必填 URL
token 用户授权令牌 String 67AA29CEE66FA6E2 必填 URL或者headers;
建议放在headers

sendData:

  1. storeOrderNo=TEST00006

response:

  1. {
  2. "data": {
  3. "cpiNo": "DL20160701000001",
  4. "createTime": "2016-07-04 10:56:46",
  5. "orderOutTradeNo": "13559989020002160704000004",
  6. "orsData": {
  7. "transaction_id": "4006302001201607048343317589",
  8. "nonce_str": "KkGmlKHPtSaiL0Ds",
  9. "bank_type": "ABC_DEBIT",
  10. "openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
  11. "sign": "5DB50BD8E96BB8F3189E24EF685525A0",
  12. "return_msg": "OK",
  13. "fee_type": "CNY",
  14. "mch_id": "1334531301",
  15. "device_info": "store001",
  16. "out_trade_no": "13559989020002160704000004",
  17. "appid": "wxb6fd9be5de96a33a",
  18. "total_fee": "1",
  19. "trade_type": "MICROPAY",
  20. "result_code": "SUCCESS",
  21. "attach": "DL20160701000001,store001,TEST00009",
  22. "time_end": "20160704105645",
  23. "is_subscribe": "Y",
  24. "return_code": "SUCCESS"
  25. },
  26. "orsId": 3,
  27. "storeNo": "store001",
  28. "txqsTradeState": "SUCCESS",
  29. "txrsBankType": "ABC_DEBIT",
  30. "txrsCashFee": 0,
  31. "txrsCouponFee": 0,
  32. "txrsErrCode": "",
  33. "txrsErrCodeDes": "",
  34. "txrsOpenid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
  35. "txrsResultCode": "SUCCESS",
  36. "txrsTimeEnd": "2016-07-04 10:56:45",
  37. "txrsTotalFee": 1,
  38. "txrsTradeType": "MICROPAY",
  39. "txrsTransactionId": "4006302001201607048343317589"
  40. },
  41. "err": "nothing",
  42. "msg": "success",
  43. "re": {},
  44. "reErr": {},
  45. "statusNo": 200,
  46. "version": "1.0.0"
  47. }

fail response

  1. {
  2. "data": {},
  3. "err": "TOKEN_AUTH_FAILED",
  4. "msg": "TOKEN不存在或已过期,请重新获取",
  5. "re": {},
  6. "reErr": {},
  7. "statusNo": 401,
  8. "version": "1.0.0"
  9. }

返回值说明:

  1. data: 返回微信撤单操作的响应结果
  2. fieldErrors : 参数不正确包含此参数,否则无此参数
  3. message : 参数不正确包含此参数,否则无此参数
  4. code : 参数不正确包含此参数,否则无此参数
  5. err : 错误消息 撤单成功时为nothing
  6. msg : 错误说明 撤单成功时为success
  7. re : 此处未用到
  8. reErr : 此处未用到
  9. statusNo : 响应状态码 撤单成功时为200
  10. version : API版本 当前版本为1.0.0
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注