更新日志
暂无更新日志记录
FAQ
暂无常见问题解答
签名规则
为了确保数据在传输过程中不被篡改,系统要求您对支付参数数据进行签名,并将数据签名随同支付请求一起上送
MD5签名
- 系统所有接口签名方式都为MD5,具体的签名字段可参考每个接口的签名(sign)参数备注
- 验证签名,您可对字符串123456进行MD5签名,签名结果得到字符串E10ADC3949BA59ABBE56E057F20F883E,即可认为签名正确
- 签名规则:把所字段按照字母a到z顺序进行拼接,然后进行MD5签名,为空的字段不参与签名
- 商户密钥由Tapxyz方提供
卡片列表接口
卡片列表接口
- 接口地址:
- 生产: https://card.tapxyz.com/getCardNameList
- 沙盒: https://sandbox.tapxyz.com/getCardNameList
- 请求方式:GET
#### 响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
状态码 |
String |
|
是 |
0000成功 F9999代表失败 |
| data |
响应数据 |
T |
|
是 |
|
响应数据参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| cardName |
卡名称 |
String |
64 |
是 |
|
| cardType |
卡类型 |
String |
1 |
是 |
|
| currency |
卡名称支持的币种 |
String |
64 |
是 |
|
发卡接口
发卡接口
请求参数
- 接口地址:
- 生产: https://card.tapxyz.com/card/issue
- 沙盒: https://sandbox.card.tapxyz.com/card/issue
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
body参数
{
"merNo":"",
"seqNo":"",
"cardName":"",
"currencyCode":"",
"lastName":"",
"firstName":"",
"cardType":"",
"certificateType":"",
"certificateNo":"",
"dateOfBirth":"",
"gender":"",
"maritalStatus":"",
"billingCity":"",
"billingAddress":"",
"billingType":"",
"billingAddressType":"",
"postalCode":"",
"email":"",
"notifyUrl":"",
"sign":""
}
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| merNo |
商户号 |
String |
64 |
是 |
可在商户后台注册获取 |
| seqNo |
开卡流水号(全局唯一) |
String |
16 |
是 |
16位流水号不能重复 |
| cardName |
卡片名称 |
String |
64 |
是 |
卡片名称我方提供 |
| currencyCode |
币种 |
String |
64 |
是 |
目前支持USD、HKD,不支持多币种 |
| lastName |
姓氏 |
String |
64 |
是 |
|
| firstName |
名字 |
String |
64 |
是 |
|
| cardType |
卡类型 |
String |
|
是 |
1代表Visa 2代表Master |
| certificateType |
证件类型 |
String |
2 |
是 |
01-18位身份证 02-15位身份证 03-军官证 04-台胞证 05-回乡证 06-港澳通行证 10-护照 20-其他 90-港澳居民居住证 91-台湾居民居住证 92-香港居民居住证 93-澳门居民居住证 AA-香港身份证 |
| certificateNo |
证件号 |
String |
19 |
是 |
|
| dateOfBirth |
出生日期 |
String |
10 |
是 |
格式:yyyy-MM-dd |
| gender |
性别 |
String |
1 |
是 |
M:男 F:女 |
| maritalStatus |
婚姻状况 |
String |
1 |
是 |
S:未婚 M:已婚 O:其他 |
| billingCity |
账单省市地址 |
String |
30 |
是 |
|
| billingAddress |
账单详细地址 |
String |
30 |
是 |
|
| postalCode |
邮政编码 |
String |
6 |
是 |
|
| email |
邮箱地址 |
String |
255 |
是 |
|
| notifyUrl |
回调通知地址 |
String |
255 |
是 |
由商户提供 |
| sign |
签名 |
String |
|
是 |
详见签名规则 |
请求示例
public class Test{
public static void main(String[] args){
JSONObject jsonObject = new JSONObject();
jsonObject.put("merKey", "");
jsonObject.put("seqNo", "");
jsonObject.put("cardName", "");
jsonObject.put("currencyCode","");
//.....除签名(sign)以外的所有的body参数
//签名
String sign = MD5(merKey+certificateNo+email+商户密钥);
jsonObject.put("sign", sign);
String url = "https://card.tapxyz.com/card/issue";
HttpResponse httpResponse = HttpRequest.post(url)
.body(jsonObject.toJSONString(), "application/json")
.execute();
int status = httpResponse.getStatus();
if(status == HttpStatus.HTTP_OK){
String content = httpResponse.body();
}
}
}
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
状态码 |
String |
|
是 |
0000成功 F9999代表失败 |
| msg |
响应描述 |
String |
|
是 |
|
发卡异步通知
- 如果商户系统接收到Tapxyz通知后没有返回SUCCESS(区分大小写)字符串,Tapxyz会认为商户系统没有收到通道,Tapxyz会在第1,2,4,8,16,32,64,128分钟之后再次发起通知,Tapxyz总共会发起9次通知,如果商户系统在8次通知中都没有返回SUCCESS,则Tapxyz不会再发起通知。
请求参数
- 接口地址:notifyUrl开卡传递的地址
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| merNo |
商户号 |
String |
64 |
是 |
可在商户后台注册获取 |
| seqNo |
流水号 |
String |
64 |
是 |
|
| status |
状态码 |
String |
|
是 |
0000代表成功F9999代表失败 |
| message |
响应描述 |
String |
60 |
是 |
响应描述 |
| certificateNo |
证件号 |
String |
19 |
是 |
|
| billingDate |
账单日 |
String |
|
否 |
|
| cardNo |
卡号 |
String |
|
否 |
|
| cvv |
cvv |
String |
|
否 |
|
| expirationTime |
卡有效期 |
String |
|
否 |
|
设置卡密码
请求参数
- 接口地址:
- 生产: https://card.tapxyz.com/card/setPassword
- 沙盒: https://sandbox.card.tapxyz.com/card/setPassword
- 请求方式:POST
- 请求头:Content-Type:application/json
- 请求参数:
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| unMaskedCardNumber |
卡号 |
String |
64 |
是 |
|
| password |
|
String |
|
是 |
"密码" |
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
响应码 |
String |
6 |
是 |
0000成功 F9999失败 |
| msg |
响应描述 |
String |
64 |
是 |
|
转账接口
转账接口
请求参数
- 接口地址:
- 生产: https://card.tapxyz.com/transfer
- 沙盒: https://sandbox.card.tapxyz.com/transfer
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
{
"seqNo":"",
"cardNumber":"",
"amount":"",
"cardNumberUntil":"",
"userName":"",
"paymentPassword":"",
"sign":""
}
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| seqNo |
流水订单号 |
String |
64 |
是 |
流水订单号 |
| targetCardNumber |
转出卡号 |
String |
12,2 |
是 |
转出卡号 |
| amount |
金额 |
String |
64 |
是 |
金额 |
| targetCardNumber |
转入卡号 |
String |
64 |
是 |
转入卡号 |
| targetUserName |
转入卡号用户名 |
String |
6 |
是 |
转入卡号用户名 |
| paymentPassword |
支付密码 |
String |
6 |
是 |
支付密码 |
| sign |
签名 |
String |
|
是 |
详见签名规则 |
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
响应码 |
String |
6 |
是 |
0000成功F9999失败 |
| message |
响应描述 |
String |
64 |
是 |
|
| data |
返回结果 |
|
|
是 |
|
查询转账记录
请求参数
- 接口地址:
- 生产: https://card.tapxyz.com/transfer/query
- 沙盒: https://sandbox.card.tapxyz.com/transfer/query
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
{
"userId":"",
"type":"",
"sign":""
}
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| userId |
用户id |
String |
64 |
是 |
|
| seqNo |
订单号 |
String |
1 |
是 |
订单号 |
| sign |
签名 |
String |
|
是 |
详见签名规则 |
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
响应码 |
String |
6 |
是 |
0000成功 F9999失败 |
| msg |
响应描述 |
String |
64 |
是 |
|
| data |
返回结果 |
T |
|
是 |
请求响应数据 |
响应数据参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| cardNumber |
转出卡号 |
String |
64 |
是 |
|
| seqNo |
订单号 |
String |
64 |
是 |
流水订单号 |
| cardType |
卡类型 |
String |
1 |
是 |
|
| currency |
币种 |
String |
64 |
是 |
|
| amount |
金额 |
String |
12,2 |
是 |
|
| changeReason |
出入 |
String |
64 |
是 |
返回转入或转出 |
| status |
状态 |
String |
64 |
是 |
|
| recipient |
转入卡号 |
String |
64 |
否 |
|
| reason |
原因 |
String |
64 |
否 |
|
| gmtCreate |
提交日期 |
String |
|
是 |
格式为:yyyy-MM-dd HH:mm:ss |
充值接口
充值接口
请求参数
- 接口地址:
- 生产: https://card.tapxyz.com/recharge
- 沙盒: https://sandbox.card.tapxyz.com/recharge
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
{
"merNo":"",
"seqNo":"",
"amount":"",
"transDestAcctNo":"",
"payBankName":"",
"payAccountName":"",
"payBankCode":"",
"payVoucherUrl":"",
"payCardNo":"",
"notifyUrl":"",
"sign":""
}
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| merNo |
商户号 |
String |
64 |
是 |
可在商户后台注册获取 |
| seqNo |
交易流水号 |
String |
16 |
是 |
16位流水号不能重复 |
| amount |
充值金额 |
String |
64 |
是 |
|
| transDestAcctNo |
被充值卡号 |
String |
16 |
是 |
|
| payBankName |
打款银行名称 |
String |
64 |
是 |
|
| payAccountName |
打款户名 |
String |
64 |
是 |
|
| payBankCode |
打款银行代码 |
String |
16 |
是 |
4-16位之间 |
| payCardNo |
打款卡号 |
String |
16 |
是 |
14-16位之间 |
| payVoucherUrl |
打款凭证图片 |
String |
255 |
是 |
上传接口上传图片返回的url |
| notifyUrl |
充值结果回调地址 |
String |
255 |
是 |
由商户提供 |
| sign |
签名 |
String |
|
是 |
详见签名规则 |
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
状态码 |
String |
6 |
是 |
0000成功 F9999代表失败 |
| msg |
响应描述 |
String |
|
是 |
|
充值异步通知
- 如果商户系统接收到Tapxyz通知后没有返回SUCCESS(区分大小写)字符串,Tapxyz会认为商户系统没有收到通道,Tapxyz会在1,2,4,8,16,32,64,128分钟之后再次发起通知,Tapxyz总共会发起9次通知,如果商户系统在8次通知中都没有返回SUCCESS,则Tapxyz就不会再发起通知。
请求参数
- 接口地址:notifyUrl充值传递的地址
- 请求方式:POST
- 请求头:Content-Type:application/json
- body参数:
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| seqNo |
交易流水号 |
String |
16 |
是 |
|
| merNo |
商户号 |
String |
64 |
是 |
可在商户后台注册获取 |
| message |
响应描述 |
String |
60 |
是 |
|
| status |
状态 |
String |
6 |
是 |
0000成功F9999失败 |
文件上传接口
请求参数
- 接口地址:https://upload.tapxyz.com/upload
- 请求方式:POST
- 请求头:multipart/form-data
- 请求参数:
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| serveId |
服务id |
String |
64 |
是 |
值"9988" |
| folder |
|
String |
|
是 |
值"Picture" |
| sign |
密钥 |
String |
64 |
是 |
密钥 "iop[]/.,mnb" |
| file |
上传的图片 |
File |
|
是 |
|
响应参数
| 字段 |
字段描述 |
类型 |
最大长度 |
必填 |
备注 |
| status |
响应码 |
String |
6 |
是 |
0000成功 F9999失败 |
| msg |
响应描述 |
String |
64 |
是 |
|
| data |
返回结果 |
|
|
是 |
url地址 |
国家编码
| 国家编码 |
名称 |
| AF |
阿富汗 |
| AX |
奥兰群岛 |
| AL |
阿尔巴尼亚 |
| DZ |
阿尔及利亚 |
| AS |
美属萨摩亚 |
| AD |
安道尔 |
| AO |
安哥拉 |
| AI |
安圭拉 |
| AQ |
南极洲 |
| AG |
安提瓜和巴布达 |
| AR |
阿根廷 |
| AM |
亚美尼亚 |
| AW |
阿鲁巴 |
| AU |
澳大利亚 |
| AT |
奥地利 |
| AZ |
阿塞拜疆 |
| BS |
巴哈马 |
| BH |
巴林 |
| BD |
孟加拉 |
| BB |
巴巴多斯 |
| BY |
白俄罗斯 |
| BE |
比利时 |
| BZ |
伯利兹 |
| BJ |
贝宁 |
| BM |
百慕大 |
| BT |
不丹 |
| BO |
玻利维亚 |
| BA |
波黑 |
| BW |
博茨瓦纳 |
| BV |
布韦岛 |
| BR |
巴西 |
| IO |
英属印度洋领地 |
| BN |
文莱 |
| BG |
保加利亚 |
| BF |
布基纳法索 |
| BI |
布隆迪 |
| KH |
柬埔寨 |
| CM |
喀麦隆 |
| CA |
加拿大 |
| CV |
佛得角 |
| KY |
开曼群岛 |
| CF |
中非 |
| TD |
乍得 |
| CL |
智利 |
| CN |
中国 |
| CX |
圣诞岛 |
| CC |
科科斯群岛 |
| CO |
哥伦比亚 |
| KM |
科摩罗 |
| CG |
刚果(布) |
| CD |
刚果(金) |
| CK |
库克群岛 |
| CR |
哥斯达黎加 |
| CI |
科特迪瓦 |
| HR |
克罗地亚 |
| CU |
古巴 |
| CY |
塞浦路斯 |
| CZ |
捷克 |
| DK |
丹麦 |
| DJ |
吉布提 |
| DM |
多米尼克 |
| DO |
多米尼加 |
| EC |
厄瓜多尔 |
| EG |
埃及 |
| SV |
萨尔瓦多 |
| GQ |
赤道几内亚 |
| ER |
厄立特里亚 |
| EE |
爱沙尼亚 |
| ET |
埃塞俄比亚 |
| FK |
马尔维纳斯群岛(福克兰) |
| FO |
法罗群岛 |
| FJ |
斐济群岛 |
| FI |
芬兰 |
| FR |
法国 |
| GF |
法属圭亚那 |
| PF |
法属波利尼西亚 |
| TF |
法属南部领地 |
| GA |
加蓬 |
| GM |
冈比亚 |
| GE |
格鲁吉亚 |
| DE |
德国 |
| GH |
加纳 |
| GI |
直布罗陀 |
| GR |
希腊 |
| GL |
格陵兰 |
| GD |
格林纳达 |
| GP |
瓜德罗普 |
| GU |
关岛 |
| GT |
危地马拉 |
| GG |
根西岛 |
| GN |
几内亚 |
| GW |
几内亚比绍 |
| GY |
圭亚那 |
| HT |
海地 |
| HM |
赫德岛和麦克唐纳群岛 |
| VA |
梵蒂冈 |
| HN |
洪都拉斯 |
| HK |
中国香港 |
| HU |
匈牙利 |
| IS |
冰岛 |
| IN |
印度 |
| ID |
印尼 |
| IR |
伊朗 |
| IQ |
伊拉克 |
| IE |
爱尔兰 |
| IM |
马恩岛 |
| IL |
以色列 |
| IT |
意大利 |
| JM |
牙买加 |
| JP |
日本 |
| JE |
泽西岛 |
| JO |
约旦 |
| KZ |
哈萨克斯坦 |
| KE |
肯尼亚 |
| KI |
基里巴斯 |
| KP |
朝鲜 |
| KR |
韩国 |
| KW |
科威特 |
| KG |
吉尔吉斯斯坦 |
| LA |
老挝 |
| LV |
拉脱维亚 |
| LB |
黎巴嫩 |
| LS |
莱索托 |
| LR |
利比里亚 |
| LY |
利比亚 |
| LI |
列支敦士登 |
| LT |
立陶宛 |
| LU |
卢森堡 |
| MO |
中国澳门 |
| MK |
马其顿 |
| MG |
马达加斯加 |
| MW |
马拉维 |
| MY |
马来西亚 |
| MV |
马尔代夫 |
| ML |
马里 |
| MT |
马耳他 |
| MH |
马绍尔群岛 |
| MQ |
马提尼克 |
| MR |
毛里塔尼亚 |
| MU |
毛里求斯 |
| YT |
马约特 |
| MX |
墨西哥 |
| FM |
密克罗尼西亚联邦 |
| MD |
摩尔多瓦 |
| MC |
摩纳哥 |
| MN |
蒙古国 蒙古 |
| MS |
蒙塞拉特岛 |
| MA |
摩洛哥 |
| MZ |
莫桑比克 |
| MM |
缅甸 |
| NA |
纳米比亚 |
| NR |
瑙鲁 |
| NP |
尼泊尔 |
| NL |
荷兰 |
| AN |
荷属安的列斯 |
| NC |
新喀里多尼亚 |
| NZ |
新西兰 |
| NI |
尼加拉瓜 |
| NE |
尼日尔 |
| NG |
尼日利亚 |
| NU |
纽埃 |
| NF |
诺福克岛 |
| MP |
北马里亚纳群岛 |
| NO |
挪威 |
| OM |
阿曼 |
| PK |
巴基斯坦 |
| PW |
帕劳 |
| PS |
巴勒斯坦 |
| PA |
巴拿马 |
| PG |
巴布亚新几内亚 |
| PY |
巴拉圭 |
| PE |
秘鲁 |
| PH |
菲律宾 |
| PN |
皮特凯恩群岛 |
| PL |
波兰 |
| PT |
葡萄牙 |
| PR |
波多黎各 |
| QA |
卡塔尔 |
| RE |
留尼汪 |
| RO |
罗马尼亚 |
| RU |
俄罗斯 |
| RW |
卢旺达 |
| SH |
圣海伦娜岛 |
| KN |
圣基茨和尼维斯 |
| LC |
圣卢西亚 |
| PM |
圣皮埃尔和密克隆 |
| VC |
圣文森特和格林纳丁斯 |
| WS |
萨摩亚 |
| SM |
圣马力诺 |
| ST |
圣多美和普林西比 |
| SA |
沙特阿拉伯 |
| SN |
塞内加尔 |
| ME |
黑山 |
| SC |
塞舌尔 |
| SL |
塞拉利昂 |
| SG |
新加坡 |
| SK |
斯洛伐克 |
| SI |
斯洛文尼亚 |
| SB |
所罗门群岛 |
| SO |
索马里 |
| ZA |
南非 |
| GS |
南乔治亚岛和南桑威奇群岛 |
| ES |
西班牙 |
| LK |
斯里兰卡 |
| SD |
苏丹 |
| SR |
苏里南 |
| SJ |
斯瓦尔巴群岛和扬马延岛 |
| SZ |
斯威士兰 |
| SE |
瑞典 |
| CH |
瑞士 |
| SY |
叙利亚 |
| TW |
中国台湾 |
| TJ |
塔吉克斯坦 |
| TZ |
坦桑尼亚 |
| TH |
泰国 |
| TL |
东帝汶 |
| TG |
多哥 |
| TK |
托克劳 |
| TO |
汤加 |
| TT |
特立尼达和多巴哥 |
| TN |
突尼斯 |
| TR |
土耳其 |
| TM |
土库曼斯坦 |
| TC |
特克斯和凯科斯群岛 |
| TV |
图瓦卢 |
| UG |
乌干达 |
| UA |
乌克兰 |
| AE |
阿联酋 |
| GB |
英国 |
| US |
美国 |
| UM |
美国本土外小岛屿 |
| UY |
乌拉圭 |
| UZ |
乌兹别克斯坦 |
| VU |
瓦努阿图 |
| VE |
委内瑞拉 |
| VN |
越南 |
| VG |
英属维尔京群岛 |
| VI |
美属维尔京群岛 |
| WF |
瓦利斯和富图纳 |
| EH |
西撒哈拉 |
| YE |
也门 |
| ZM |
赞比亚 |
| ZW |
津巴布韦 |
| RS |
塞尔维亚 |
错误码
| 状态码 |
描述 |
| 0000 |
SUCCESS |
| F9999 |
系统错误 |