alipay.marketing.card.open(会员卡开卡) 在线调试(沙箱环境)

商户通过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 344 商户请求参数的签名串,详见签名 详见示例
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 必选 发卡用户信息
user_uni_id String 必填 32 用户唯一标识, 根据user_id_type类型来定 (目前暂支持支付宝userId)

支付宝userId说明:支付宝用户号是以2088开头的16位纯数字组成
2088302463082075
user_uni_id_type String 必填 32 ID类型:UID, 即传值UID即可 UID
card_ext_info MerchantCard 必选 外部卡信息(biz_card_no无需填写)
biz_card_no String 可选 32 支付宝业务卡号
说明:
1、开卡成功后返回该参数,需要保存留用;
2、开卡/更新/删卡/查询卡接口请求中不需要传该参数;
000001
external_card_no String 可选 64 商户外部会员卡卡号
说明:
1、会员卡开卡接口,如果卡类型为外部会员卡,请求中则必须提供该参数;
2、更新、查询、删除等接口,请求中则不需要提供该参数值;
EXT0001
open_date Date 必填 32 会员卡开卡时间,格式为yyyy-MM-dd HH:mm:ss。会员卡更新时,该时间不支持修改,请传入调用开卡接口时传入的card_ext_info.open_date时间。 2014-02-20 21:20:46
valid_date String 必填 32 会员卡有效期,格式为yyyy-MM-dd HH:mm:ss。会员卡更新时,该时间不支持修改,请传入调用开卡接口时传入的card_ext_info.valid_date时间。 2020-02-20 21:20:46
level String 可选 64 会员卡等级(由商户自定义,并可以在卡模板创建时,定义等级信息) VIP1
point String 可选 64 会员卡积分,积分必须为数字型(可为浮点型,带2位小数点) 88
balance String 可选 64 资金卡余额,单位:元,精确到小数点后两位。 124.89
template_id String 可选 32 会员卡更换不同的卡模板(该参数仅用在会员卡更新接口中) 20170308000000000058101000300045
mdcode_info MdCodeInfoDTO 可选 1024 商户动态码回传信息:
只用于当write_off_type核销类型为mdbarcode或mdqrcode时,商户调用卡更新接口回传动态码。如需使用商户动态码,请联系支付宝技术支持获取相关文档。
code_status String 必填 14 本次回传动态码的状态:
SUCCESS: 本次发码成功
FAIL_RETRY: 本次发码失败,且需要支付宝重试(重新通知商户发码)
FAIL_NOT_RETRY: 本次发码失败,且无需支付宝重试(无需重新通知商户发码)
SUCCESS
code_value String 可选 128 动态码的码值:
code_status为SUCCESS时必填;
基于此码值生成条形码或二维码用于扫码核销。
1KFCDY0002
expire_time Date 可选 19 当前动态码的过期(失效)时间:
code_status为SUCCESS时必填。
2017-06-09 16:25:53
time_stamp Number 必填 20 商户回传动态码的时间戳。

即商户调接口回传动态码时刻对应的long类型时间戳,用于区分不同的发码请求。
1496996459
front_text_list CardFrontTextDTO[] 可选 1024 卡面文案列表,1项对应1行文案,最多只能传入4行文案;
单行文案展现分为左右两部分,左边对应label字段,右边对应value;
形如: 学院 新闻学院
label String 可选 4 文案标签 专业
value String 可选 32 展示文案 金融贸易
front_image_id String 可选 1024 卡面展示图片的图片ID,通过接口(alipay.offline.material.image.upload)上传图片

这里预期展示的是个人照片;
图片说明:1M以内,格式bmp、png、jpeg、jpg、gif;
图片尺寸为230*295px,可等比放大;
9fxnkgt0QFmqKAl5V2BqxQAAACMAAQED
member_ext_info MerchantMenber 可选 商户会员信息
name String 可选 64 姓名 李洋
gende String 可选 32 性别(男:MALE;女:FEMALE) MALE
birth String 可选 32 生日 yyyy-MM-dd 2016-06-27
cell String 可选 32 手机号 13000000000
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

响应参数

参数 类型 是否必填 最大长度 描述 示例值
card_info MerchantCard 必填 商户卡信息(包括支付宝分配的业务卡号)
biz_card_no String 可选 32 支付宝业务卡号
说明:
1、开卡成功后返回该参数,需要保存留用;
2、开卡/更新/删卡/查询卡接口请求中不需要传该参数;
000001
external_card_no String 可选 64 商户外部会员卡卡号
说明:
1、会员卡开卡接口,如果卡类型为外部会员卡,请求中则必须提供该参数;
2、更新、查询、删除等接口,请求中则不需要提供该参数值;
EXT0001
open_date Date 必填 32 会员卡开卡时间,格式为yyyy-MM-dd HH:mm:ss。会员卡更新时,该时间不支持修改,请传入调用开卡接口时传入的card_ext_info.open_date时间。 2014-02-20 21:20:46
valid_date String 必填 32 会员卡有效期,格式为yyyy-MM-dd HH:mm:ss。会员卡更新时,该时间不支持修改,请传入调用开卡接口时传入的card_ext_info.valid_date时间。 2020-02-20 21:20:46
level String 可选 64 会员卡等级(由商户自定义,并可以在卡模板创建时,定义等级信息) VIP1
point String 可选 64 会员卡积分,积分必须为数字型(可为浮点型,带2位小数点) 88
balance String 可选 64 资金卡余额,单位:元,精确到小数点后两位。 124.89
template_id String 可选 32 会员卡更换不同的卡模板(该参数仅用在会员卡更新接口中) 20170308000000000058101000300045
mdcode_info MdCodeInfoDTO 可选 1024 商户动态码回传信息:
只用于当write_off_type核销类型为mdbarcode或mdqrcode时,商户调用卡更新接口回传动态码。如需使用商户动态码,请联系支付宝技术支持获取相关文档。
code_status String 必填 14 本次回传动态码的状态:
SUCCESS: 本次发码成功
FAIL_RETRY: 本次发码失败,且需要支付宝重试(重新通知商户发码)
FAIL_NOT_RETRY: 本次发码失败,且无需支付宝重试(无需重新通知商户发码)
SUCCESS
code_value String 可选 128 动态码的码值:
code_status为SUCCESS时必填;
基于此码值生成条形码或二维码用于扫码核销。
1KFCDY0002
expire_time Date 可选 19 当前动态码的过期(失效)时间:
code_status为SUCCESS时必填。
2017-06-09 16:25:53
time_stamp Number 必填 20 商户回传动态码的时间戳。

即商户调接口回传动态码时刻对应的long类型时间戳,用于区分不同的发码请求。
1496996459
front_text_list CardFrontTextDTO[] 可选 1024 卡面文案列表,1项对应1行文案,最多只能传入4行文案;
单行文案展现分为左右两部分,左边对应label字段,右边对应value;
形如: 学院 新闻学院
label String 可选 4 文案标签 专业
value String 可选 32 展示文案 金融贸易
front_image_id String 可选 1024 卡面展示图片的图片ID,通过接口(alipay.offline.material.image.upload)上传图片

这里预期展示的是个人照片;
图片说明:1M以内,格式bmp、png、jpeg、jpg、gif;
图片尺寸为230*295px,可等比放大;
9fxnkgt0QFmqKAl5V2BqxQAAACMAAQED
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\":{" +
"\"biz_card_no\":\"000001\"," +
"\"external_card_no\":\"EXT0001\"," +
"\"open_date\":\"2014-02-20 21:20:46\"," +
"\"valid_date\":\"2020-02-20 21:20:46\"," +
"\"level\":\"VIP1\"," +
"\"point\":\"88\"," +
"\"balance\":\"124.89\"," +
"\"template_id\":\"20170308000000000058101000300045\"," +
"\"mdcode_info\":{" +
"\"code_status\":\"SUCCESS\"," +
"\"code_value\":\"1KFCDY0002\"," +
"\"expire_time\":\"2017-06-09 16: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": {
        "code": "10000",
        "msg": "Success",
        "card_info": {
            "biz_card_no": "000001",
            "external_card_no": "EXT0001",
            "open_date": "2014-02-20 21:20:46",
            "valid_date": "2020-02-20 21:20:46",
            "level": "VIP1",
            "point": "88",
            "balance": "124.89",
            "template_id": "20170308000000000058101000300045",
            "mdcode_info": {
                "code_status": "SUCCESS",
                "code_value": "1KFCDY0002",
                "expire_time": "2017-06-09 16:25:53",
                "time_stamp": 1496996459
            },
            "front_text_list": [
                {
                    "label": "专业",
                    "value": "金融贸易"
                }
            ],
            "front_image_id": "9fxnkgt0QFmqKAl5V2BqxQAAACMAAQED"
        },
        "open_card_channel": "QR",
        "open_card_channel_id": "2088123123123123"
    },
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

异常示例

{
    "alipay_marketing_card_open_response": {
        "code": "20000",
        "msg": "Service Currently Unavailable",
        "sub_code": "isp.unknow-error",
        "sub_msg": "系统繁忙"
    },
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

业务错误码

公共错误码

错误码错误描述解决方案
INVALID_PARAMETER 参数有误。参数有误。 查看message定位问题
SYSTEM_ERROR 系统繁忙 系统错误,查兰message获取实际错误原因
TEMPLATE_NOT_EXIT 模板不存在 查看模板
NO_CARD_TYPE 没有卡类型 卡类型判断
onlineServer