@931876502
2016-07-22T13:00:08.000000Z
字数 10864
阅读 627
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 |
POSTsign/upapplication/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号门店的名称
GETsign/inapplication/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
POSTorder/acceptapplication/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 | 商户订单号重复 | 支付确认失败 | 同一笔交易不能多次提交 | 请核实商户订单号是否重复提交 |
POSTorder/query67AA29CEE66FA6E2参数说明:
| 参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
|---|---|---|---|---|---|
| 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
POSTorder/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天的撤销有效期,过期将不能撤销 | 请检查需要撤销的订单是否超过可撤销有效期 |
POSTorder/cancelquery67AA29CEE66FA6E2参数说明:
| 参数 | 中文名称 | 类型 | 举例 | 说明 | 参数位置 |
|---|---|---|---|---|---|
| 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