更新时间:2024-01-22 10:13:17收藏我的文档设置返回文档1. 背景有大量商家会员定义为授权手机号即注册为会员,部分商家新接入会员3.0后,大量历史注册会员难以激活成为3.0会员。会员积累效率低,对于客户后续会员运营有较大影响。因此考虑在原有的商家会员卡开放能力(包括会员私域插件(原名:支付宝卡包插件)和开卡openapi接口)基础上实现升级,支持商家crm会员在支付宝侧的快速激活完成会员关系的沉淀并落入卡包凭证供用户复访。2. 接入条件●商家会员卡开放平台能力已完全集成且线上可运行(包括3.1极速版或3.0)。●在商家自有下单页或者其他合适的链路中可集成激活插件用于实现本次的快速激活流程。3. 方案概述本次的激活插件采用低侵入的嵌入式插件样式,方便商户在下单页实现集成,尽量降低对主流程的影响,通过轻量级的交互模式实现手机号授权入会用户在支付宝侧的快速激活插卡,同时满足隐私合规和数据交互的要求。由于插件是集成在商家页面区块中,所以插件的渲染和激活动作的触发都需要商家通过代码进行相应的控制:●插件渲染:商家在下单页渲染的过程中同时唤起插件,传入相应的参数实现插件的内容渲染;●插件激活触发:商家在支付按钮点击后选择恰当的时机(如用户实际支付成功后)再次调用插件,传入相应的参数实现激活动作的指令下发。同时,尽管从用户角度看激活更多是一个单向且便捷的交互动作,但其实背后与标准入会一样存在双方卡号等信息的关联和其他关键数据的双向数据往来,所以插件触发激活动作的后端链路会与标准入会保持交互方式的统一,唯一的区别是支付宝输出给商户的用户个人信息仅包含手机号一项(且为商户前置通过插件主动传入的值) 。4. 前端插件集成4.1 订购开卡插件商家需订购并完成前端集成,如果之前已在入会链路中集成过了则无需重复订购。4.2 前端引入插件4.2.1 第一步:声明插件开发者需在小程序 app.json 文件中声明激活插件(与入会插件id相同,无需重复声明)。4.2.2 第二步:使用插件提供 2 个能力:1带 ui 界面的「会员激活组件」渲染,接入这个组件并正确传参就能渲染出下面这个区块。未激活状态已激活状态2触发激活的方法: plugin.activatedcarda该方法的调用时机由「商家自主控制」,可以在:点击支付按钮、或者用户支付成功时,场景自定,建议是在用户支付成功后,不然会出现用户没有完成下单成功就插卡成功的情况。需要注意的是如果本步操作的触发时间点与上一步组件渲染相隔超过5min则会导致激活失败,需重新渲染后方可激活触发成功。 b这个方法有必需的入参,这个入参由上方「会员激活组件」的 oncallback 函数中拿到并透传。4.2.2.1 示例参考.axml 示例代码index.json 示例代码.js 示例代码4.2.2.2 参数说明membership-activation 会员激活组件(params) 入参说明:本组件用于渲染激活组件。入参说明:参数类型是否必填描述cardparamsobject是渲染必备参数switchtoggleboolean否"将会员卡加入卡包"的开关,默认状态请商家自行设置,支持默认开启或默认关闭,不传默认为trueshowmemberidentityboolean否激活后,是否展示"支付宝身份会员表达"的条,不传默认打开backgroundstring否自定义渐变背景色,不传默认淡黄色渐变oncallbackfunction是回调函数,这里的回调函数拿到的数据,可以直接作为下方激活方法的入参cardparams 模型参数类型是否必填描述mobilestring是用户手机号templateidstring否卡模板idurlstring否开卡链接,仅针对3.0outstringstring否商家自定义透传信息。注意:禁止将该字段作为开卡流程的必要字段,否则会导致会员推广场景下的入会失败plugin.activatedcard(params) 接口说明:本插件接口用于激活触发。直接用「激活组件」回调函数拿到的数据,直接作为该方法的入参透传下去。5. 服务端集成开卡接口无论是3.0还是3.1极速版,本次激活场景下用户个人表单信息仅输出商家传入支付宝的手机号用于商家确定用户身份,所以如果在原有的入会链路中强依赖更多的个人信息则需要商家识别本次的业务场景标识进行相应的逻辑调整,避免对现有链路产生负面影响。5.1 会员3.1极速版5.1.1 链路时序5.1.2 spi开卡接口该接口在现有的spi开卡基础上微调了部分业务入参,因此本文仅解释变动的部分,其余内容可参考。参数类型是否必填最大长度示例值描述本次变更user_idstring否162088902351536970蚂蚁统一会员 id。无template_idstring是3220200312000000000414103000300846会员卡模板 id,即 返回的 template_id。无out_serial_nostring是321621923366000out_serial_no:外部流水号,标识一次用户的开卡动作,用户每次打开开卡组件,都会生成一个全局唯一的 id。无biz_card_nostring是32000001支付宝预先生成的 会员卡业务卡号,开卡结果需要回填。商家需要保存该业务卡号,后续可通过该卡号,更新、查询会员卡。无user_infostring是10240[{"open_form_field_mobile":"13888888888"}]用户开卡时提交的表单信息,json 数组格式。 通用表单字段名称如下示例:●open_form_field_mobile:手机号。删减了与激活无关的枚举值,仅支持由商家传入支付宝的手机号。入会场景仍参考原有字段说明,不受影响scene_codestring否32memberactivate场景类型●激活:memberactivate●入会:memberjoin;如果为空,则默认为入会新增字段,用于在原有的默认入会场景下支持本次的激活场景,便于商家按需差异化处理内部逻辑out_stringstring否1024test该值为商家拉起开卡组件的传递的 out_string 值。通常可用于区分不同业务场景。注意:禁止将该字段作为开卡流程的必要字段,否则会导致会员推广场景下的入会失败。无5.2 会员3.0版本5.2.1 链路时序5.2.2 激活场景识别上述时序图中的#4,支付宝会回调商家在接口中传入的callback地址,在激活场景下支付宝会在该链接后追加一个场景标识scene_code,商家可按需进行识别并做差异化逻辑处理:●激活:memberactivate;●入会:memberjoin,默认为空即为入会,兼容现有逻辑。5.2.3 用户表单信息获取上述时序图中的#5,商家通过接口获取用户表单信息,但在激活场景下只会输出手机号,其他字段不输出,仅涉及出参的枚举值变化。参数中文名参数英文名类型是否必选最大长度描述示例值本次变更表单提交信息infosstring特殊可选102400表单提交信息各个字段的值json数组 通用表单字段名称如下示例: open_form_field_mobile – 手机号[{"open_form_field_mobile":"13888888888"}]删减了与激活无关的枚举值,仅支持由商家传入支付宝的手机号。入会场景仍参考原有字段说明,不受影响6. 对接成本预估内容预估工时(天)备注前端插件集成1服务端集成开卡接口0~1按需,如果商家确认现有开卡链路可兼容本次逻辑则无需改动全链路调试1~2可群内联系支付宝技术同学配合联调7. 会员官方服务群会员运营过程中如有任何问题可添加支付宝会员运营官方商家群,同时您可第一时间了解到会员卡产品的最新能力,支付宝协助商家高效运营会员。