支付宝小程序使用会员卡开通

发布于:2022-11-09 ⋅ 阅读:(16) ⋅ 点赞:(0) ⋅ 评论:(0)

支付宝会员开卡文档官方已经更新了,目前最新版的相对旧版减少了不少操作步骤,但是文档有很多地方没有更新。博主我也是通过跟支付宝官方技术支持“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不能解码,否则你本地调试验签通不过,你们可以自己试一下。

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&notify_time=2022-11-01+18%3A48%3A16&sign=xxx&card_type=OUT_MEMBER_CARD&process_time=2022-11-01+18%3A48%3A16&version=1.0&notify_id=1112233344555&card_status=NORMAL&notify_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获取到的。

目前暂时就想到这么多,后续如果还有就继续补充,大家有问题可以留言,让大家尽量少踩坑。