会员卡系统接入微信卡券那些事儿

前言

在中国日常生活中,微信使用的频率以及占用的时长最多。东家有自己的会员卡系统,在移动互联网时代,线下门店使用还需客户拿着物理会员卡太不方便了,于是接入微信卡券提上了计划的日程。在接入的过程中,碰到了一些坑,无论是使用姿势不对还是其它,网上搜索了没找到解决问题的答案又无法寻求其他人的帮助,这个时候是最崩溃的,还是先记下来,也许可以帮助别人减少这些不必要花的时间。

会员卡与卡券

什么是卡券?从我接触到的微信文档上理解,卡券是微信APP里面的一个功能模块,这里面包含了各种卡和各种券,卡和券拥有共性也有差异,微信设计时把它当做同一个数据模型,根据卡券类型字段来区分,根据卡券类型字段来处理不同卡券扩展字段,它的API文档创建卡券接口都是同一个,也是这样要求传参数的。微信卡券现在支持哪些类型呢?从公开的文档上看,现在支持会员卡,礼品卡,购物卡,优惠券,折扣券,代金券等。东家的会员卡系统对应微信卡券里面的基础会员卡,按照基础会员卡相关文档要求实现即可。什么是会员卡?我的理解:它是证明用户是商业实体会员的一个凭证,拥有这个凭证会员就可以享受商家提供的针对会员的特权。会员卡与卡券是什么关系呢?经过上面的解释已经很清楚了,会员卡只是卡券里面的一个类型,跟优惠券都是一等公民。一开始接触这个我糊涂了,会员卡,优惠券,卡券,到底是神马关系?后来进一步详读微信文档发现,微信的设计哲学跟自己根据常识理解的不一样):):

基本玩法

创建会员卡-》投放会员卡-》用户领取会员卡-》激活用户会员卡-》使用会员卡
微信官方文档流程图如下:


用户领取会员卡时还没有用户会员个性化的数据,比如卡号,积分之类的,激活用户会员卡的目的就是为了设置这些个性化的数据。如果不用考虑到兼容第三方的会员卡系统,这两步其实是可以合并的。

存储设计

创建的会员卡数据基本上按照微信的卡券设计哲学设计存储模型,这样方便扩展添加其它的卡券类型。定义一个卡券基础表,用于存储通用数据,每种卡券类型分别创建扩展表,用于存储各自专有的数据。表相关的设计字段基本上跟微信接口定义的一致,当然可以根据喜好使用不同的名称也可以。

JS签名

如果是使用JSSDK的方式引导用户添加会员卡到微信卡券,服务器端需要根据规则生成好参数以及参数签名。生成参数的签名大家使用的套路基本上是一致的:参数排序,拼接字符串,拼接好的字符串加上签名密钥,然后使用哈稀算法生成哈稀字符串即签名字符串。微信签名官方文档已经说的很清楚了,了解详情参考官方文档。

激活方式

目前为止有如下几种激活方式:

1 自动激活

字段auto_activate设置为true

2 一键激活

字段wx_activate设置为true

3 跳转型一键激活

设置好如下字段:
"wx_activate": true,
"wx_activate_after_submit" : true, //是否设置跳转型一键激活
"wx_activate_after_submit_url" : "http://qq.com" //用户提交信息后跳转的网页

4 接口激活

设置好激活回调地址activate_url

5 备注
自动激活和非跳转型激活微信会生成自己的卡号,对于只能使用公司会员卡系统的卡号体系来说,只能选择接口激活和跳转型一键激活的方式。同时只能选择一种激活方式。填入了自动激活auto_activate字段,激活链接activate_url和一键开卡接口设置都会失效。若同时传入了activate_url,则一键开卡接口设置会失效。

激活处理流程

非官方流程

官方流程

微信卡券详情点击激活链接

用户会员卡信息变更处理

1 用户会员数据变化,比如积分,等级等,调用会员卡更新接口
2 用户卡号变化,只能调用激活接口重新激活

碰到的问题

1.编辑卡模版时由接口激活切换到一键激活没有生效

接口激活的URL字段需要设置为空即activate_url=‘‘

2.已激活的会员卡微信卡券详情页面没有显示会员卡号

使用非自定义code时,微信卡券详情页不会显示卡号,需要use_custom_code字段设置为true

3.使用JSSDK加入卡券接口报参数错误

使用自定义code码时,加入卡券时需要设置code码字段

4.使用JSSDK加入卡券接口报签名错误

检查微信会员卡模版ID是否正确

5.查看会员卡详情页没有推送查看会员卡事件通知

会员卡可能没有添加成功,删除重新领取

6.会员卡详情页没有显示快速支付按钮
需要设置好相关字段

{
   "card": {
       "card_type": "MEMBER_CARD",
       "member_card": {
           "base_info": {
               "pay_info":
               {
                       "swipe_card":
                       {
               
                          "is_swipe_card":true
                       }
               }
           },
       }
   }
}

7.用户会员卡号变化时如何处理

查阅公开的文档,到目前为止,更新会员卡信息的接口还没有更新卡号字段的参数,只能调用激活接口重新激活一次

8.微信自动下发的积分变动通知消息,点击详情按钮提示卡券信息不完整,无法查看

微信版本太低了,新版本会默认跳转到卡券详情页

9.领取了会员卡,然后从卡券中删除,再次添加到卡券时,立即领取按钮无法点击

超过了限制领取的数量,可以设置大点,保证用户领取时比较好的用户体验,一般用户不会删除会员卡

意外的衍生品

设计了一套通用的跟微信接口交互的简单的PHP库,各个项目都可以使用,遵循PSR规范。定义了一个接口文件,一个基础类,子类按微信功能模块划分,目前为止只加了卡券模块子类,其它微信功能模块以后项目中需要时再慢慢完善。代码github地址:https://github.com/wadeyu/wxapi

后记

1 接入第三方系统是非常痛苦的,尤其是碰到问题搜索不到解决方案的时候
2 接口激活有个问题,点击激活跳转回来时,没有传创建的会员卡编号,当创建了多个时,没有办法区分哪个是哪个

参考资料

【1】微信会员卡接口文档
http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025283&token=&lang=zh_CN
【2】卡券JS-SDK调试工具以及常见接入错误说明
http://mp.weixin.qq.com/s?__biz=MzI1ODE0OTM0NQ==&mid=2649017217&idx=1&sn=be19cf54794706bd972ff53e64b64da7&scene=1&srcid=0628XbOdWU4VxMg3SBxFy4AG#wechat_redirect

【3】微信JSSDK文档
http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN

时间: 2024-10-17 02:16:15

会员卡系统接入微信卡券那些事儿的相关文章

旅行社微信电子会员卡系统asp源码

最近接的一个旅行社的微信会员卡系统,用户在公众号注册后,有积分,充值等功能,管理员在后台操作,主要是吸引老客户,吸粉引流的作用,程序是asp编写的,需要的可以下载:ly.ftphn.com/lyxt.rar ============================================= 互相学习电话微信:18611436777(加微信注明事由) 原文地址:https://www.cnblogs.com/lycoco/p/9867916.html

微信卡券新功能开放公告

为了让更多商户能够使用微信卡券功能,更好适应商户的发券用券场景,公众平台现推出以下三项新能力. 一.开发者协助制券 开发者可协助其他合作商户制券,按照其他合作商户是否有公众号,分为有公众号模式和无公众号模式. 1.有公众号模式 “开发者协助制券模式(有公众号)”是为降低卡券接入门槛,快速引入大量商户,由具备开发能力的开发者代商户制券的功能,该模式仅支持普通券类型(代金券.折扣券.礼品券.团购券.通用优惠券).为商户提供开发能力的开发者简称“母商户”,商户简称“子商户”. “开发者协助制券模式(有

微信卡券功能相关策略调整 类目库存等进行修改

双11狂欢活动微信的战绩应该不是很好,很少看到相关数据报道,现在微信发布卡券功能相关策略调整公告,微信卡券功能正式向直供型电商开放申请了,这是在亡羊补牢吗?(11月11日,腾讯低调庆祝了16岁生日,并在晚间宣布上线有“免费通话”功能的“微信电话本”.用户已超8亿的微信,再次试图通过“过顶传球”颠覆运营商最根本的语音业务.) 以下是微信团队的系统公告 卡券功能相关策略调整 卡券功能在原有基础上做出多项优化.改进,以下是最核心的五点: 一.卡券功能正式向直供型电商开放申请 经过开放策略的调整和申请流

官方微信接口(全接口) - 微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中.微信支付.微信红包.微信卡券.微信小店. 微信开发探讨群 330393916 <?php /**  * Description of wechat  *  * @author Administrator  */ class WeChat extends WxApi{     public $token = "";     //put your code here     public function __const

ios应用接入微信开放平台

前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应用系统可以对接 开放平台是微信的总体接入方式.不局限于公众账号(订阅号,服务号).移动APP和web应用也能够通过开放平台.实现与微信对接.能够说,公众平台的API部分,是开放平台的一个子集 开放平台大体上分为3个部分.分别针对移动APP,WEB应用.公众账号的接入 移动APP接入开放平台的作用 眼

浅谈微信卡券功能开发(1)

闲扯 由于公司的业务,有幸接触到了微信平台的开发,不得不感慨下,微信的业务规划实在是宏大的很呢.看来微信是想涉及生活的各个方面啊,再加上最近微信封杀各路豪杰(网易音乐.支付宝钱包)等,不难看出微信在产品规划上的野心. 貌似闲话说的太多了,接下来我就我自己对于微信卡券功能的开发经验进行简单的介绍,在微信开发的交流群中也看到很多新手开发者遇到的问题,希望本文能够帮助刚接触微信卡券的同学尽快的入门卡券功能开发,由于鄙人是NODEJS码农,所以本文主要以NODEJS为开发语言,其他语言的开发者可以飘过~

订餐系统之微信支付

    最近一个项目要增加微信支付的功能,想来这个东西出来这么久了,按微信提供的应该可以很快搞定的,结果提供的demo( JS API网页支付)中各种坑,咨询他们的客服,态度倒是非常好,就是解决不了问题,最后让我发邮件,一想,这个邮件一来一回至少又得好几个小时,没有办法只能根据开发文档一个一个核对,再加上些猜想,终于完成了.为了别的朋友少踩些坑,特此小文,希望对一此朋友有所帮助. 准备工作 当然,要集成微信支付,首先还是要先有一个微网站,熟悉的请飘过,不了解的,可以参考下我之前的一篇小文 订餐系

酷客多小程序新版发布:与微信卡券、小票打印等无缝对接

酷客多小程序商城系统更新了!酷客多小程序商城系统更新了!酷客多小程序商城系统更新了!重要的事情说3遍!这一次我们对原有版本做了全方位体验优化,从UI UE等方面对商家后台进行了体验式改善,使商家后台变得更加美观和易用.除此之外,还推出了"微信优惠券"和"小票打印"两个重要功能 ,已实现与微信卡券和小票打印机无缝对接,更便于品牌传播.具体的功能说明请见下文. 一.左侧导航菜单优化 1,调整了左侧栏目的显示顺序,显示顺序改为"店铺管理"-"

商户如何接入微信支付

1. 商户接入 1.1 申请流程指引 一.申请流程图 二.申请接入步骤详细说明 (一)成为已认证的服务号 1.目前微信支付功能仅开放给已经通过微信认证的服务号(企业.商店商家.非事业单位媒体类服务号),若已经通过微信认证,且是服务号,可直接进入第二步;2.订阅号商户可先升级为服务号,此步骤约1个工作日;3.未经认证的商户可先申请微信认证.注意:请申请认证的商户主体与后续申请微信支付权限的商户主体保持一致. (二)提交申请资料,等待审核 1.登录公众号,进入:服务-服务中心-商户功能; 2.提交商