@931876502
2016-07-22T21:00:08.000000Z
字数 10864
阅读 531
txpay
API
版本号:
1.0.0
部门:研发部
岗位:服务端开发人员
姓名:杨松
建立日期:2016-7-4
最后更新日期:2016-7-6
https://www.getpostman.com/collections/c7e230329be1b1910b6e
{{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 |
POST
sign/up
application/json
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
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:
{
"cpiName": "测试酒店",
"storeNo": "store001",
"storeDogNo": "dogno001",
"appId": "123456789",
"AppSecret": "secret001",
"mchId": "1355998902",
"logId": "operate001"
"dealerNo":"DLHIS"
}
response:
{
"data": "EAB8FD09C4B1D09C",
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response
{
"code": "INVALIDREQUEST",
"data": {},
"err": "NOTEMPTY_FIELD_CPINAME_ON_SIGNUPREQ",
"fieldErrors": [
{
"code": "NotEmpty",
"field": "cpiName",
"message": "企业名称不得为空-cpiName",
"resource": "signUpReq"
}
],
"message": "NOTEMPTY_FIELD_CPINAME_ON_SIGNUPREQ",
"msg": "企业名称不得为空-CPINAME",
"re": {},
"reErr": {},
"statusNo": 400,
"version": "1.0.0"
}
返回值说明:
- data:
- 成功会返回
token
,用于之后订单业务接口请求,有效时间为2小时- 失败为空
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 成功时为
nothing
- msg : 错误说明 成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 成功时为
200
- version : API版本 当前版本为
1.0.0
ps:业务说明
1.一个门店需要单独使用一个AppSecret,即AppSecret不可重复
2.如果两个或多个门店的appId相同,那么认为这多个门店属于同一家酒店或公司
3.cpiName
以第一次申请注册为准,即2号门店注册填写的名称与1号门店不同时采用的是1号门店的名称
GET
sign/in
application/json
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
appSecret | 密钥 | String | EAB8FD09C4B1D09C | 必填 | URL |
storeNo | 自定义分店号 | String | store001 | 必填 | URL |
logId | 操作员编号 | String | operater001 | 必填 | URL |
sendData:
logId=1001&storeNo=store001&appSecret=secret001
response:
{
"data": "67AA29CEE66FA6E2",
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response
{
"code": "INVALIDREQUEST",
"data": {},
"err": "NOTEMPTY_FIELD_LOGID_ON_SIGNINREQ",
"fieldErrors": [
{
"code": "NotEmpty",
"field": "logId",
"message": "员工工号不得为空",
"resource": "signInReq"
}
],
"message": "NOTEMPTY_FIELD_LOGID_ON_SIGNINREQ",
"msg": "员工工号不得为空",
"re": {},
"reErr": {},
"statusNo": 400,
"version": "1.0.0"
}
返回值说明:
- data:
- 成功会返回
token
,用于之后订单业务接口请求,有效时间为2小时- 失败为空
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 成功时为
nothing
- msg : 错误说明 成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 成功时为
200
- version : API版本 当前版本为
1.0.0
POST
order/accept
application/json
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
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:
{
"authCode": "130535872891365770",
"storeOrderNo": "TEST00006",
"body": "辣条",
"detail": [],
"totalFee": "1",
"limitPay": ""
}
response:
{
"data": {
"appid": "wxb6fd9be5de96a33a",
"attach": "DL20160701000001,store001,TEST00009",
"bank_type": "ABC_DEBIT",
"device_info": "store001",
"fee_type": "CNY",
"is_subscribe": "Y",
"mch_id": "1334531301",
"nonce_str": "KkGmlKHPtSaiL0Ds",
"openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
"out_trade_no": "13559989020002160704000004",
"result_code": "SUCCESS",
"return_code": "SUCCESS",
"return_msg": "OK",
"sign": "5DB50BD8E96BB8F3189E24EF685525A0",
"time_end": "20160704105645",
"total_fee": "1",
"trade_type": "MICROPAY",
"transaction_id": "4006302001201607048343317589"
},
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response token失效
{
"data": {},
"err": "TOKEN_FAILED",
"msg": "TOKEN不存在或已过期,请重新获取",
"re": {},
"reErr": {},
"statusNo": 401,
"version": "1.0.0"
}
authCode重复
{
"data": {},
"err": "AUTHCODEEXPIRE",
"msg": "每个二维码仅限使用一次,请刷新再试",
"re": {},
"reErr": {},
"statusNo": 10409,
"version": "1.0.0"
}
返回值说明:
- data:
- 成功会返回微信支付操作的响应结果
- 失败为空
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 成功时为
nothing
- msg : 错误说明 成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 成功时为
200
- 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 | 商户订单号重复 | 支付确认失败 | 同一笔交易不能多次提交 | 请核实商户订单号是否重复提交 |
POST
order/query
67AA29CEE66FA6E2
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
storeOrderNo | 下单时的本地订单号 | String | TEST00006 | 必填 | URL |
token | 用户授权令牌 | String | 67AA29CEE66FA6E2 | 必填 | URL或者headers; 建议放在 headers 中 |
sendData:
storeOrderNo=TEST00006
response:
{
"data": {
"cpiNo": "DL20160701000001",
"createTime": "2016-07-04 10:56:46",
"orderOutTradeNo": "13559989020002160704000004",
"orsData": {
"transaction_id": "4006302001201607048343317589",
"nonce_str": "KkGmlKHPtSaiL0Ds",
"bank_type": "ABC_DEBIT",
"openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
"sign": "5DB50BD8E96BB8F3189E24EF685525A0",
"return_msg": "OK",
"fee_type": "CNY",
"mch_id": "1334531301",
"device_info": "store001",
"out_trade_no": "13559989020002160704000004",
"appid": "wxb6fd9be5de96a33a",
"total_fee": "1",
"trade_type": "MICROPAY",
"result_code": "SUCCESS",
"attach": "DL20160701000001,store001,TEST00009",
"time_end": "20160704105645",
"is_subscribe": "Y",
"return_code": "SUCCESS"
},
"orsId": 3,
"storeNo": "store001",
"txqsTradeState": "SUCCESS",
"txrsBankType": "ABC_DEBIT",
"txrsCashFee": 0,
"txrsCouponFee": 0,
"txrsErrCode": "",
"txrsErrCodeDes": "",
"txrsOpenid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
"txrsResultCode": "SUCCESS",
"txrsTimeEnd": "2016-07-04 10:56:45",
"txrsTotalFee": 1,
"txrsTradeType": "MICROPAY",
"txrsTransactionId": "4006302001201607048343317589"
},
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response
{
"data": {
"cpiNo": "DL20160701000001",
"createTime": "2016-07-06 16:35:40",
"orderOutTradeNo": "13559989020001160706000007",
"orsData": {
"nonce_str": "94slM2yza65UlJu4",
"out_trade_no": "13559989020001160706000007",
"trade_state": "USERPAYING",
"appid": "wxb6fd9be5de96a33a",
"sign": "72B10890FD88BEDEB8C0446D8DE9DE28",
"result_code": "SUCCESS",
"return_msg": "OK",
"attach": "DL20160701000001,store001,TEST160706017",
"mch_id": "1334531301",
"sub_mch_id": "1355998902",
"return_code": "SUCCESS"
},
"orsId": 30,
"storeNo": "store001",
"txqsTradeState": "USERPAYING",
"txrsCashFee": 0,
"txrsCouponFee": 0,
"txrsErrCodeDes": "需要用户输入支付密码",
"txrsOpenid": "",
"txrsResultCode": "USERPAYING",
"txrsTimeEnd": "2016-07-06 16:35:40",
"txrsTotalFee": 0,
"txrsTradeType": "MICROPAY",
"txrsTransactionId": ""
},
"err": "SOMTHING_ERR",
"msg": "需要用户输入支付密码",
"re": {},
"reErr": {},
"statusNo": 10409,
"version": "1.0.0"
}
返回值说明:
- data: 返回微信支付操作的响应结果
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 成功时为
nothing
- msg : 错误说明 成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 订单为支付成功时为
200
- version : API版本 当前版本为
1.0.0
POST
order/cancel
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
storeOrderNo | 下单时的本地订单号 | String | TEST00006 | 必填 | URL |
token | 用户授权令牌 | String | 67AA29CEE66FA6E2 | 必填 | URL或者headers; 建议放在 headers 中 |
sendData:
storeOrderNo=TEST00006
response:
{
"data": {
"appid": "wxb6fd9be5de96a33a",
"mch_id": "1334531301",
"nonce_str": "TpXhS42C4HhmD2V5",
"recall": "N",
"result_code": "SUCCESS",
"return_code": "SUCCESS",
"return_msg": "OK",
"sign": "63E5FBDDAB3F71CF83E4A66AC8A91541"
},
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response
{
"data": {},
"err": "THIS_OEDER_HAS_ALREADY_REVERSE_SUCCESS",
"msg": "业务错误:该订单已经成功撤销,请勿重复操作!",
"re": {},
"reErr": {},
"statusNo": 10409,
"version": "1.0.0"
}
返回值说明:
- data:
- 成功会返回微信撤单操作的响应结果
- 失败为空
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 撤单成功时为
nothing
- msg : 错误说明 撤单成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 撤单成功时为
200
- version : API版本 当前版本为
1.0.0
ps:业务说明
1.撤单成功,原订单会被关闭,支付成功的金额也会原路退回
2.只有产生了腾讯订单号的订单才能进行撤单操作
err
:错误消息之常见错误:
名称 | 描述 | 原因 | 解决方案 |
---|---|---|---|
SYSTEMERROR | 接口返回错误 | 系统超时 | 重新发起退款 |
INVALID_TRANSACTIONID | 无效transaction_id | 请求参数未按指引进行填写 | 参数错误,请重新检查 |
SIGNERROR | 签名错误 | 参数签名结果不正确 | 请检查签名参数和方法是否都符合签名算法要求 |
REVERSE_EXPIRE | 订单无法撤销 | 订单有7天的撤销有效期,过期将不能撤销 | 请检查需要撤销的订单是否超过可撤销有效期 |
POST
order/cancelquery
67AA29CEE66FA6E2
参数说明:
参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
---|---|---|---|---|---|
storeOrderNo | 下单时的本地订单号 | String | TEST00006 | 必填 | URL |
token | 用户授权令牌 | String | 67AA29CEE66FA6E2 | 必填 | URL或者headers; 建议放在 headers 中 |
sendData:
storeOrderNo=TEST00006
response:
{
"data": {
"cpiNo": "DL20160701000001",
"createTime": "2016-07-04 10:56:46",
"orderOutTradeNo": "13559989020002160704000004",
"orsData": {
"transaction_id": "4006302001201607048343317589",
"nonce_str": "KkGmlKHPtSaiL0Ds",
"bank_type": "ABC_DEBIT",
"openid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
"sign": "5DB50BD8E96BB8F3189E24EF685525A0",
"return_msg": "OK",
"fee_type": "CNY",
"mch_id": "1334531301",
"device_info": "store001",
"out_trade_no": "13559989020002160704000004",
"appid": "wxb6fd9be5de96a33a",
"total_fee": "1",
"trade_type": "MICROPAY",
"result_code": "SUCCESS",
"attach": "DL20160701000001,store001,TEST00009",
"time_end": "20160704105645",
"is_subscribe": "Y",
"return_code": "SUCCESS"
},
"orsId": 3,
"storeNo": "store001",
"txqsTradeState": "SUCCESS",
"txrsBankType": "ABC_DEBIT",
"txrsCashFee": 0,
"txrsCouponFee": 0,
"txrsErrCode": "",
"txrsErrCodeDes": "",
"txrsOpenid": "oFc5OuFTzowJChzUg9tChrCrNkAA",
"txrsResultCode": "SUCCESS",
"txrsTimeEnd": "2016-07-04 10:56:45",
"txrsTotalFee": 1,
"txrsTradeType": "MICROPAY",
"txrsTransactionId": "4006302001201607048343317589"
},
"err": "nothing",
"msg": "success",
"re": {},
"reErr": {},
"statusNo": 200,
"version": "1.0.0"
}
fail response
{
"data": {},
"err": "TOKEN_AUTH_FAILED",
"msg": "TOKEN不存在或已过期,请重新获取",
"re": {},
"reErr": {},
"statusNo": 401,
"version": "1.0.0"
}
返回值说明:
- data: 返回微信撤单操作的响应结果
- fieldErrors : 参数不正确包含此参数,否则无此参数
- message : 参数不正确包含此参数,否则无此参数
- code : 参数不正确包含此参数,否则无此参数
- err : 错误消息 撤单成功时为
nothing
- msg : 错误说明 撤单成功时为
success
- re : 此处未用到
- reErr : 此处未用到
- statusNo : 响应状态码 撤单成功时为
200
- version : API版本 当前版本为
1.0.0