更新时间:2024-11-12 17:53:21文档更新记录 >集成工具收藏订阅更新我的文档设置返回文档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 函数中拿到并透传。示例参考.axml 示例代码index.json 示例代码.js 示例代码参数说明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开卡基础上微调了部分业务入参,因此 本文仅解释变动的部分,其余内容可参考 spi.alipay.user.opencard.get(会员卡开通,获取会员卡信息接口)。参数类型是否必填最大长度示例值描述本次变更user_id(openid)string否128-蚂蚁统一会员 id。新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看openid配置申请。无template_idstring是3220200312000000000414103000300846会员卡模板 id,即 alipay.marketing.card.template.create(会员卡模板创建接口)返回的 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-