商户通过API接口,进行会员卡开卡。
| 环境 | HTTPS请求地址 |
|---|---|
| 正式环境 | https://openapi.alipay.com/gateway.do |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
| method | String | 是 | 128 | 接口名称 | alipay.marketing.card.open |
| format | String | 否 | 40 | 仅支持JSON | JSON |
| charset | String | 是 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
| sign_type | String | 是 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
| sign | String | 是 | 256 | 商户请求参数的签名串,详见签名 | 详见示例 |
| timestamp | String | 是 | 19 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
| version | String | 是 | 3 | 调用的接口版本,固定为:1.0 | 1.0 |
| auth_token | String | 是 | 40 | 针对用户授权接口,获取用户相关数据时,用于标识用户授权关系。详见用户信息授权 | |
| app_auth_token | String | 否 | 40 | 详见应用授权概述 | |
| biz_content | String | 是 | - | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| out_serial_no | String | 必须 | 64 | 外部商户流水号(商户需要确保唯一性控制,类似request_id唯一请求标识) | 201606270000001 |
| card_template_id | String | 必须 | 32 | 支付宝分配的卡模板Id(卡模板创建接口返回的模板ID) | 201606270000001 |
| card_user_info | CardUserInfo | 必须 | - | 发卡用户信息 | |
|
|||||
| card_ext_info | MerchantCard | 必须 | - | 外部卡信息(biz_card_no无需填写) | |
|
|||||
| member_ext_info | MerchantMenber | 可选 | - | 商户会员信息 | |
|
|||||
| open_card_channel | String | 可选 | 32 | 领卡渠道,用于记录外部商户端领卡来源的渠道信息,渠道值可自行定义(仅限数字、字母、下划线)
可直接标识领卡渠道,也可配合open_card_channel_id标识领卡渠道类型: 例如: 线下门店领取:20161534000000000008863(直接标识领卡渠道,门店shopId) 线下扫二维码领取:QR(标识领卡类型); 线下活动领取:20170522000000000003609(直接标识领卡渠道,商户活动ID) |
20161534000000000008863 |
| open_card_channel_id | String | 可选 | 32 | 领卡来源的渠道id,注意区别于open_card_channel领卡渠道;
一般使用场景: open_card_channel用于区分渠道类型,例如取值为"SHOP"(门店),"ACTIVITY"(活动); 则open_card_channel_id可用于区分同渠道的不同实体,对应取各门店ID或各活动的标识ID等; |
2088123123123123 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| code | String | 是 | - | 网关返回码,详见文档 | 40004 |
| msg | String | 是 | - | 网关返回码描述,详见文档 | Business Failed |
| sub_code | String | 否 | - | 业务返回码,详见文档 | ACQ.TRADE_HAS_SUCCESS |
| sub_msg | String | 否 | - | 业务返回码描述,详见文档 | 交易已被支付 |
| sign | String | 是 | - | 签名,详见文档 | DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo= |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| card_info | MerchantCard | 必填 | - | 商户卡信息(包括支付宝分配的业务卡号) | |
|
|||||
| open_card_channel | String | 选填 | 32 |
实际记录的领卡渠道(可能跟商户传入值不同);
可直接标识领卡渠道,也可配合open_card_channel_id标识领卡渠道类型: 例如: 线下门店领取:20161534000000000008863(直接标识领卡渠道,门店shopId) 线下扫二维码领取:QR(标识领卡类型); 线下活动领取:20170522000000000003609(直接标识领卡渠道,商户活动ID) |
QR |
| open_card_channel_id | String | 选填 | 32 |
实际记录的领卡来源渠道id(可能跟商户传入值不同);
区别于open_card_channel领卡渠道; 一般使用场景: open_card_channel用于区分渠道类型,例如取值为"SHOP"(门店),"ACTIVITY"(活动); 则open_card_channel_id可用于区分同渠道的不同实体,对应取各门店ID或各活动的标识ID等; |
2088123123123123 |
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayMarketingCardOpenRequest request = new AlipayMarketingCardOpenRequest();
request.setBizContent("{" +
"\"out_serial_no\":\"201606270000001\"," +
"\"card_template_id\":\"201606270000001\"," +
"\"card_user_info\":{" +
"\"user_uni_id\":\"2088302463082075\"," +
"\"user_uni_id_type\":\"UID\"" +
"}," +
"\"card_ext_info\":{" +
"\"external_card_no\":\"EXT0001\"," +
"\"open_date\":\"2014-02-2021:20:46\"," +
"\"valid_date\":\"2020-02-2021:20:46\"," +
"\"level\":\"VIP1\"," +
"\"point\":\"88\"," +
"\"balance\":\"124.89\"," +
"\"mdcode_info\":{" +
"\"code_status\":\"SUCCESS\"," +
"\"code_value\":\"1KFCDY0002\"," +
"\"expire_time\":\"2017-06-0916:25:53\"," +
"\"time_stamp\":1496996459" +
"}," +
"\"front_text_list\":[{" +
"\"label\":\"专业\"," +
"\"value\":\"金融贸易\"" +
"}]," +
"\"front_image_id\":\"9fxnkgt0QFmqKAl5V2BqxQAAACMAAQED\"" +
"}," +
"\"member_ext_info\":{" +
"\"name\":\"李洋\"," +
"\"gende\":\"MALE\"," +
"\"birth\":\"2016-06-27\"," +
"\"cell\":\"13000000000\"" +
"}," +
"\"open_card_channel\":\"20161534000000000008863\"," +
"\"open_card_channel_id\":\"2088123123123123\"" +
"}");
AlipayMarketingCardOpenResponse response = alipayClient.execute(request,accessToken);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
{
"alipay_marketing_card_open_response":{
"msg":"Success",
"code":"10000",
"open_card_channel":"QR",
"open_card_channel_id":"2088123123123123",
"card_info":{
"open_date":"2014-02-20 21:20:46",
"front_text_list":[
{
"label":"专业",
"value":"金融贸易"
}
],
"external_card_no":"EXT0001",
"valid_date":"2020-02-20 21:20:46",
"balance":"124.89",
"level":"VIP1",
"mdcode_info":{
"time_stamp":1496996459,
"code_value":"1KFCDY0002",
"expire_time":"2017-06-09 16:25:53",
"code_status":"SUCCESS"
},
"front_image_id":"9fxnkgt0QFmqKAl5V2BqxQAAACMAAQED",
"biz_card_no":"000001",
"template_id":"20170308000000000058101000300045",
"point":"88"
}
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
{
"alipay_marketing_card_open_response":{
"msg":"Service Currently Unavailable",
"code":"20000",
"sub_msg":"系统繁忙",
"sub_code":"isp.unknow-error"
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| INVALID_PARAMETER | 参数有误。 | 查看message定位问题 |
| SYSTEM_ERROR | 系统繁忙 | 系统错误,查兰message获取实际错误原因 |
| TEMPLATE_NOT_EXIT | 模板不存在 | 查看模板 |
| NO_CARD_TYPE | 没有卡类型 | 卡类型判断 |