微信卡劵管理的卷入操作

前边几篇介绍了微信支付方面包车型地铁始末,本篇继续微信接口的一部分其它地点的内容:卡劵管理。卡劵管理是微信接口里面分外复杂的二个片段,里面包车型客车接口10分多,小编花了过多日子对它进行了包装处理,重构优化等等工作,卡劵在经营销售方面是1个相比好的门径,能够利用在会员管理、店铺打折等方面包车型地铁移位,可是万层高楼从底起,大家必要把卡劵管理的相关接口抓牢完善,才能在它的基本功上进展更进一步的接纳操作。

① 、微信卡券接口表达

微信卡券功效是腾讯为经纪人提供的一套完整的电子卡券消除方案,商家可在法规允许的限制内经过该意义实现电子卡券生成、下发、领取、核销的闭环,并动用对账、卡券管理等配套效用。微信卡券功效可分为API接口效用和群众平台卡券作用,使用二种作用均可落成卡券生成、下发、领取、核销,有付出意愿的商贾可应用API接口功效,无开发意愿专营商可利用公众平台卡券功效。

微信公众平台这一次扩充了微信卡券成效,开放接口供集团使用。
辅助开发者调用接口创造多种类型的卡券,通过发出信息、二维码、JS-SDK等艺术展开投放,在用户接纳时经过API接口或卡券商户帮手完毕审核销账。
同时支持接口获取总计数据,以及各样环节给予开发者事件推送。 

脚下支撑优惠券(代金券、折扣券、礼品券、团购券)、会员卡、景点门票、电影票、飞机票、红包、会议门票等二种卡券类型。
开发者能够透过卡券接口火速完毕制券、发券及销券流程:

一 、成立卡券接口 开发者可经过该接口,创建卡券,导入/拉取卡券适用门店、获取卡券颜色列表。

② 、卡券投放接口 开发者可经过该接口,生成卡券领取二维码,也可在网页内调用JavaScript接口,教导用户领取卡券。

③ 、卡券核销接口

调用核销接口可对点名卡券进行核销。支持网页内调用JavaScript接口拉取卡券列表,用户选用卡券后即可到位核销。

④ 、卡券管理接口 开发者可经过该接口,对已开立的卡券实行询问、删除、更改、设置失效等操作。同时,在卡券通过审查批准、卡券被领取、卡券被删除时,均会推送事件通报开发者。

五 、特殊卡票接口 协理特殊卡票券(会员卡、电影票、飞机票、红包、会议门票)的适用场景,提供对应的接口能力,包涵激活/绑定会员卡、会员卡交易、更新电影票、在线选座、更新红包余额、更新会议门票等接口。

⑥ 、设置测试用户白名单 开发者可安装测试用户白名单,无论卡券是不是经过审核均可领到卡券,测试整个卡券的使用流程。

为了驾驭那个卡劵的复杂,大家先来探望它的法定的卡劵内容流程图

必发bifa88手机客服端 1

那么些图里面涉及的始末很多,同样卡劵管理的API接口也很多,可是我们连年希望化繁为简,因而大家得以一步步来明白任何卡劵的始末。

 

贰 、卡劵的轩然大波通报

卡劵的连带事件,会由微信后台文告大家的服务后台,因而大家可以对卡劵的创始、使用等各样方面都有有关的事件通报,大家在相应的事件上贯彻大家的卡劵管理逻辑也是很有益的。

上边列出卡劵管理之中的后台音信通告分类。

必发bifa88手机客服端 2

那些音信对应的风云,我们能够停放请求的风云类型里面,那样我们在联合调用事件的时候,就能够对他们开始展览区分了。

 

必发bifa88手机客服端 3

那样大家在微信音信处理的进口,就足以独家对这个事件开始展览拍卖了。WeixinApiDispatch正是四个分发的管理类,它提取请求音讯的内容,并营造区别类别的新闻参数,传递给分歧的响应函数举行处理,然后回到封装好的XML内容,作为响应。

切切实实的代码处理逻辑如下图所示。

必发bifa88手机客服端 4

这么我们在代码里面就能够对相应个事件开始展览处理了。

必发bifa88手机客服端 5

当中大家注意到,我们对卡劵的不等事件,把它们的风云新闻对象化后展开相应的拍卖的,如下代码所示。

                            case RequestEvent.card_pass_check:      //卡劵通过审核
                            case RequestEvent.card_not_pass_check:  //卡劵未通过审核
                                {
                                    // 卡券通过审核(或审核不通过)
                                    RequestEventCardCheck info = XmlConvertor.XmlToObject<RequestEventCardCheck>(postStr);
                                    if (info != null)
                                    {
                                    }
                                    LogTextHelper.Info(eventName + ((info == null) ? "info is null" : info.ToJson()));
                                }
                                break;

 

③ 、卡劵的分类及创制操作

1)卡劵分类

前方介绍了,微信卡劵近年来帮助减价券(代金券、折扣券、礼品券、团购券)、会员卡、景点门票、电影票、飞机票、红包、会议门票等多种卡券类型。大家在微信后台,能够手工业创设减价卷,如下图所示。

必发bifa88手机客服端 6

出于各种卡劵之间的数量有平等的一些,也有一对的部分,大家需求在类的局面上对她们开始展览不一致的新闻建立模型。

必发bifa88手机客服端 7

我们再来定义2个卡劵类型的枚举,方便大家在代码中动用,这些枚举对象也饱含了笔者们前面介绍到的那几个卡劵类型了。

    /// <summary>
    /// 卡券类型
    /// </summary>
    public enum CardType
    {
        /// <summary>
        /// 折扣券
        /// </summary>
        DISCOUNT = 0,
        /// <summary>
        /// 代金券
        /// </summary>
        CASH = 1,
        /// <summary>
        /// 礼品劵、兑换券
        /// </summary>
        GIFT = 2,
        /// <summary>
        /// 优惠券/通用券
        /// </summary>
        GENERAL_COUPON = 3,
        /// <summary>
        /// 团购券
        /// </summary>
        GROUPON = 4,

        /// <summary>
        /// 会员卡
        /// </summary>
        MEMBER_CARD = 5,
        /// <summary>
        /// 门票
        /// </summary>
        SCENIC_TICKET = 6,
        /// <summary>
        /// 电影票
        /// </summary>
        MOVIE_TICKET = 7,
        /// <summary>
        /// 飞机票
        /// </summary>
        BOARDING_PASS = 8,
        /// <summary>
        /// 红包
        /// </summary>
        LUCKY_MONEY = 9,
        /// <summary>
        /// 会议门票
        /// </summary>
        MEETING_TICKET = 10,
        /// <summary>
        /// 汽车票
        /// </summary>
        BUS_TICKET,
    }

是因为差别档次卡劵的新闻差异,由此大家必要封闭创立那个对应的卡劵类,以有益创设对应的消息用于创制操作。

 

2)创制卡券

始建卡券的接口调用顺序

必发bifa88手机客服端 8

其间上传图片,正是利用通用的图纸上传接口上传即可,上传后得到对应的图纸URL地址。

上传图片接口调用请求表明

HTTP请求方式: POST/FROM
URL:https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN

优惠劵的背景象,在微信里面有一对参阅色样,如下图所示。

必发bifa88手机客服端 9

成立卡券接口是微信卡券的底蕴接口,用于创造一类新的卡券,获取card_id,成立成功并透过审查后,商家能够由此文书档案提供的其它接口将卡券下发给用户,每趟成功领取,仓库储存数量相应扣除。

接口调用请求表达

HTTP请求方式: POST
URL: https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN

 

参数表明

参数 是否必须 说明
access_token 调用接口凭证
POST数据 Json数据

 

 

 

二种分裂类其余卡劵,他们POST的JSON对象新闻都以不太雷同的,如团购劵的实业消息如下所示。

 

团购券

参数名 必填 类型 示例值 描述
card_type string(24) GROUPON 团购券类型。
base_info JSON结构 见上述示例。 基本的卡券数据,见下表,所有卡券类型通用。
deal_detail string(3072) 双人套餐\n -进口红酒一支。\n孜然牛肉一份。 团购券专用,团购详情。

 

 

 

 

 

必发bifa88手机客服端, 

 

 

团购劵JSON示例

{
 "card": {
     "card_type": "GROUPON",
     "groupon": {
         "base_info": {
         ················
         },
          "advanced_info": {
         ················
          },
         "deal_detail": "示例"
     }
 }
}

 

而代金券提交的消息如下所示。

代金券

参数名 必填 类型 示例值 描述
card_type string(24) CASH 代金券类型。
base_info JSON结构 见上述示例。 基本的卡券数据,见下表,所有卡券通用。
least_cost int 10000 代金券专用,表示起用金额(单位为分),如果无起用门槛则填0。
reduce_cost int 10000 代金券专用,表示减免金额。(单位为分)

 

 

 

 

 

 

 

 

代金券JSON示例

{
 "card": {
     "card_type": "CASH",
     "cash": {
         "base_info": {
         ················
         },
          "advanced_info": {
         ················
          },
         "least_cost": 1000,
         "reduce_cost": 100,
     }
 }
}

近年来其余三种档次个卡劵也各有不一致,不在一一赘述,能够看到各个卡劵指导的音讯,有一对同样,有一对差别,然则它们创设卡劵的时候,使用的是同3个接口,那种接口方式在卡劵接口里面很广泛。

里头卡劵里面包车型客车base_info(卡券基础音信)字段-必填字段、base_info(卡券基础消息)字段-非必填字段、Advanced_info(卡券高级音信)字段相比复杂,具体请参见相关的字段表明列表。

 

成立卡劵的归来表达

多少示例:

{
   "errcode":0,
   "errmsg":"ok",
   "card_id":"p1Pj9jr90_SQRaVqYI239Ka1erkI"
}

 

参数名 描述
errcode 错误码,0为正常。
errmsg 错误信息。
card_id 卡券ID。

 

 

 

 

四 、创设卡劵的类定义和API封装

传说那几个音讯,我们创设卡劵的时候,大家能够定义分化的信息实体,如下所示是卡劵基类和折扣劵的类定义音讯。

    /// <summary>
    /// 卡劵基类信息
    /// </summary>
    public class CardJson
    {
        /// <summary>
        /// 基础信息
        /// </summary>
        public CardBaseInfo base_info { get; set; }

        /// <summary>
        /// 高级字段
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public CardAdvanceInfo advanced_info{ get; set; }
    }

    /// <summary>
    /// 折扣券数据
    /// </summary>
    public class DisCountCardJson : CardJson
    {
        /// <summary>
        /// 折扣券专用,表示打折额度(百分比)。填30就是七折。
        /// </summary>
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
        public int discount { get; set; }
    }

其它卡劵的信息也是看似,根据须要扩张即可,如会员卡的音信,大家得以遵守地方的存续关系展开字段的增加补充即可。

    /// <summary>
    /// 会员卡的详细信息,是CardDetailJson的子类
    /// </summary>
    public class MemberCardJson : CardJson
    {
        /// <summary>
        /// 显示积分,填写true或false,如填写true,积分相关字段均为必填。
        /// </summary>
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
        public bool supply_bonus { get; set; }

        /// <summary>
        /// 是否支持储值,填写true或false。如填写true,储值相关字段均为必填。
        /// </summary>
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
        public bool supply_balance { get; set; }

        /// <summary>
        /// 特权说明
        /// 非必填
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public string prerogative { get; set; }

        /// <summary>
        /// 设置为true时用户领取会员卡后系统自动将其激活,无需调用激活接口
        /// </summary>
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
        public bool auto_activate { get; set; }

        /// <summary>
        /// 设置为true时会员卡支持一键激活,不允许同时传入activate_url字段,否则设置wx_activate失效。
        /// 非必填
        /// </summary>
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
        public bool wx_activate { get; set; }

        ..........

还有任何品种的数据,如会议卡劵,电影卡劵音信等类库也同样处理,其余的根据此规则扩充即可。

    /// <summary>
    /// 会议门票数据
    /// </summary>
    public class MettingTicketJson : CardJson
    {
        /// <summary>
        /// 会议详情
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public string meeting_detail { get; set; }

        /// <summary>
        /// 会场导览图
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public string map_url { get; set; }
    }

    /// <summary>
    /// 门票数据
    /// </summary>
    public class ScenicTicketJson : CardJson
    {
        /// <summary>
        /// 票类型,例如平日全票,套票等
        /// 非必填
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public string ticket_class { get; set; }
        /// <summary>
        /// 导览图url
        /// 非必填
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public string guide_url { get; set; }
    }

有了那一个音信,大家就可以透过集合的接口函数举办卡劵的创始操作了。

必发bifa88手机客服端 10

在落到实处函数的结尾,大家正是调用接口的UWranglerL,提交相应的多少就能够了

            var url = string.Format("https://api.weixin.qq.com/card/create?access_token={0}", accessToken);
            var result = JsonHelper<CardCreateResultJson>.ConvertJson(url, cardData);
            return result != null ? result.card_id : null;

 

若是对这几个《C#付出微信门户及选拔》种类感兴趣,能够关切本身的别的文章,连串小说如下所示:

C#支付微信门户及接纳(36)–微信卡劵管理的卷入操作

C#开发微信门户及利用(35)–微信支付之集团付款封装操作

C#付出微信门户及使用(34)–微信裂变红包

C#支出微信门户及运用(33)–微信现米色包的卷入及选取

C#支付微信门户及应用(32)–微信支付接入和API封装使用

C#开发微信门户及选取(31)–微信语义驾驭接口的完结和拍卖

C#付出微信门户及运用(30)–新闻的群发处理和预览功用

C#付出微信门户及应用(28)–微信“摇一摇·周边”作用的选用和接口的落到实处

C#付出微信门户及使用(27)-公众号模板音讯管理 

C#支出微信门户及运用(26)-公众号微信资料管理

C#支付微信门户及应用(25)-微信集团号的客户端管住成效

C#支付微信门户及使用(24)-微信小店货架新闻保管

C#开发微信门户及运用(23)-微信小店商品质量管理理理接口的卷入和测试

C#付出微信门户及应用(22)-微信小店的开支和接纳

C#支出微信门户及使用(21)-微信集团号的音信和事件的收纳处理及解密 

C#付出微信门户及接纳(20)-微信公司号的菜系管理

C#支出微信门户及利用(19)-微信集团号的新闻发送(文本、图片、文件、语音、录制、图像和文字新闻等)

C#付出微信门户及利用(18)-微信公司号的通信录管理支出之成员管理

C#付出微信门户及应用(17)-微信公司号的通信录管理支出之部门管理

C#支出微信门户及采纳(16)-微信集团号的配备和利用

C#支付微信门户及运用(15)-微信菜单扩充扫一扫、发图片、发地理地方成效

C#支付微信门户及应用(14)-在微信菜单中应用重定向获取用户数量

C#支付微信门户及使用(13)-使用地理地方扩张相关应用

C#开发微信门户及运用(12)-使用语音处理

C#付出微信门户及应用(11)–微信菜单的有余呈现方式介绍

C#支出微信门户及选用(10)–在管制种类中国共产党同微信用户分组消息

C#支出微信门户及运用(9)-微信门户菜单管理及提交到微信服务器

C#支付微信门户及应用(8)-微信门户应用管理体系机能介绍

C#开发微信门户及采用(7)-微信多客服功能及支付集成

C#付出微信门户及利用(6)–微信门户菜单的管住操作

C#支出微信门户及使用(5)–用户分组音讯保管

C#开发微信门户及运用(4)–关心用户列表及详细音讯管理

C#付出微信门户及应用(3)–文本新闻和图像和文字音讯的对答

C#付出微信门户及选拔(2)–微信音信的拍卖和回答

C#支付微信门户及利用(1)–开首选拔微信接口

 

相关文章