商户通过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 | 没有卡类型 | 卡类型判断 |