支付宝会员开卡文档官方已经更新了,目前最新版的相对旧版减少了不少操作步骤,但是文档有很多地方没有更新。博主我也是通过跟支付宝官方技术支持“battle”了很多次,官方表示后续会更新文档,不知道你们看到这篇文档的时候是否已经更新,我在这先做个坑的总结,遇到的话可以少走些弯路。
官方文档地址:商家会员卡产品介绍 | 网页&移动应用
1.会员卡创建、修改模板
官方文档地址:会员卡模板创建接口 | 网页&移动应用;会员卡模板修改接口 | 网页&移动应用
文档中有个字段是spi_app_id,虽然标明可选,但是在这里一定是必须传入你的支付宝小程序appId;
notify_url字段需要传入一个接口地址,此接口为会员在卡包里面删卡回调通知接口,下面我们会说明。如果是使用sdk的话,用request.SetNotifyUrl方法配置。
2.上传图片,创建表单
官方文档地址:上传门店照片和视频接口 | 网页&移动应用;会员卡开卡表单模板配置接口 | 网页&移动应用
创建会员卡模板中的背景图,logo等就需要通过上传图片接口上传拿到imgId,这两个接口就按照文档写就行了。
3.会员卡开通
官方文档地址:会员卡开通,获取会员卡信息接口 | 网页&移动应用
该接口是SPI接口,就是说你得需要按照他文档去写一个供支付宝调用的接口。这个比老版本省了很多麻烦,最起码不需要你去调用当前用户填写的表单内容,token等。其中公共请求参数通过query方式,body参数通过form-data方式,这种具体看接入准备和指南。
接口的request参数中的biz_app_id确定是不会传给你的,当时说是后续会把该字段删除。同样,invoke_app_id这个参数虽然我没试,但是大概率也是不会传了。
接口返回参数如果有为空和null值得就不需要返回了,不仅是value,也同样不返回key,这个是支付宝技术支持跟我反复强调得,虽然我觉得有点怪,但是毕竟是按照他的要求写的接口,大哥们都忍忍。
还有接口返参中得valid_date字段,文档描述是直接拿入参字段得值,这个不用管,自定义就行了,但是一定要比当前时间要大,不然无法回调。
注:同时我发现个有意思得事,如果你本地调试,你拿到入参得时候,除了sign参数都要进行url解码,但是sign不能解码,否则你本地调试验签通不过,但是删卡回调sign值是需要解码的,你们可以自己试一下。
4.会员卡开卡结果通知
注:这个接口我个人认为是没啥用得,因为下面有个接口功能与此接口重复,你们可以自己酌情考虑
首先需要在应用网关配置你的回调地址,如果配置过那你就需要在你原本已经有的方法做个判断了。这个接口没啥好说的,根据返回的信息去更改或者保存相关信息就行了。
5.会员在卡包里面删卡回调通知
这个接口是没有文档的,它不仅包括删卡回调通知,也包括了开卡回调通知,共用了一个接口。区别:开卡:notify_type=cardcenter_card_open,card_status=NORMAL
删卡:notify_type=cardcenter_card_cancelled,card_status=UNBUND
所以我说上面的开卡结果通知可要可不要。回调地址就是创建模板或修改模板中传入的notify_url字段值。
入参ex:charset=utf-8&external_card_no=111112222233333¬ify_time=-11-01+18%3A48%3A16&sign=xxx&card_type=OUT_MEMBER_CARD&process_time=-11-01+18%3A48%3A16&version=1.0¬ify_id=1112233344555&card_status=NORMAL¬ify_type=cardcenter_card_open&user_id=123456777&event_code=CARD_STATUS_CHANGE&biz_card_no=11233467&auth_app_id=12345432&template_id=123434323&request_id=123212342&app_id=12345432&sign_type=RSA2
6.获取当前会员token,授权会员信息
文档地址:换取授权访问令牌接口 | 网页&移动应用;支付宝会员授权信息查询接口 | 网页&移动应用
授权会员信息时,auth_code需要前端使用scope参数值从 auth_base 改为 auth_user获取到的。
目前暂时就想到这么多,后续如果还有就继续补充,大家有问题可以留言,让大家尽量少踩坑。