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 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 必须 - 发卡用户信息
  • └ 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无需填写)
  • └ external_card_no
  • String
  • 可选
  • 64
  • 商户外部会员卡卡号
    说明:
    1、会员卡开卡接口,如果卡类型为外部会员卡,请求中则必须提供该参数;
    2、更新、查询、删除等接口,请求中则不需要提供该参数值;
  • EXT0001
  • └ open_date
  • Date
  • 必填
  • 32
  • 会员卡开卡时间,格式为yyyy-MM-dd HH:mm:ss
  • 2014-02-20 21:20:46
  • └ valid_date
  • String
  • 必填
  • 32
  • 会员卡有效期
  • 2020-02-20 21:20:46
  • └ level
  • String
  • 可选
  • 64
  • 会员卡等级(由商户自定义,并可以在卡模板创建时,定义等级信息)
  • VIP1
  • └ point
  • String
  • 可选
  • 64
  • 会员卡积分,积分必须为数字型(可为浮点型,带2位小数点)
  • 88
  • └ balance
  • String
  • 可选
  • 64
  • 资金卡余额,单位:元,精确到小数点后两位。
  • 124.89
  • 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

公共响应参数

参数 类型 是否必填 最大长度 描述 示例值
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 必填 - 商户卡信息(包括支付宝分配的业务卡号)
  • └ 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
  • 2014-02-20 21:20:46
  • └ valid_date
  • String
  • 必填
  • 32
  • 会员卡有效期
  • 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

请求示例

  • JAVA
  • .NET
  • PHP
  • HTTP请求源码
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("调用失败");
}

响应示例

  • JSON示例
{
	"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"
}

异常示例

  • JSON示例
{
	"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 没有卡类型 卡类型判断

公共错误码

返回
顶部