本文是【浅析微信支付】系列文章的第十七篇,主要讲解在在微信平台中,如何创建优惠券,开通社交立减金,并为用户配置发送立减金。


上篇文章已经为大家讲解了如何在微信公众平台创建优惠券并为用户发券,这片文章是优惠券的一个进阶,讲解微信平台上的社交立减金用法,希望可以帮助到大家。

应用场景

小程序社交立减金是一款帮助商家快速生成具备裂变传播属性的小程序经营工具,用户通过支付、扫码等场景可以参与社交立减金活动,将社交立减金礼包分享至朋友后自己可获取一份,朋友在会话中可随机获取社交立减金,并直达商家小程序使用。

产品优势

  1. 打通“小程序+支付+优惠”,支付成功页分发社交立减金,支付时抵扣使用;
  2. 通过聊天分享和裂变,触达更多潜在用户,降低拉新成本;
  3. 根据用户标签属性,可配置分发不同金额的社交立减金,如新老用户、是否会员等;
  4. 结合用户偏好兴趣,可配置个性化商品推荐,提高转化。

官方文档地址:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21515658940X5pIn

接入流程

进入上面文档地址,文中有开通公众号活动配置权限,这个权限必须开启,开启指南如下:

社交立减金可通过微信支付后向用户下发消息领取,在配置活动时需要登录发起支付的商户号开通权限。Q:在微信支付平台开通“公众号活动配置”权限
A:使用管理员帐号(管理员为申请商户号时给用户分配的登录账号)登录微信支付商户平台pay.weixin.qq.com,进入“产品中心-我的产品-运营工具”,进入并开通“公众号活动配置”权限。

开通权限之后,还需要完成免充值模式验收,这个验收在我的前几篇文章中已经讲过,下面贴上对应的链接查看:
浅析微信支付:开通免充值产品功能及如何进行接口升级指引

完成免充值模式验收后,即可通过接口创建与支付打通的代金券,为配置立减金活动做准备。

若已完成免充值模式验收,可直接调用创建代金券并设置跳转小程序,下面是创建的流程和对应代码。

创建社交立减金的步骤说明

首先,我们来理解一下社交立减金的构成和创建流程,这样才能不被微信给弄迷糊了,下面是几个步骤的说明:

  1. 开通微信公众平台中的微信卡券功能
  2. 开通微信商户平台中的公众号活动配置功能
  3. 开通微信商户平台中的免充值相关产品功能
  4. 完成免充值模式验收
  5. 微信商户平台创建或者通过接口创建微信代金券
  6. 登陆微信支付商户平台 -营销中心-管理代金券-草稿箱中激活对应卡券
  7. 通过创建支付后领取立减金活动接口创建活动
  8. 登陆微信支付商户平台 -营销中心-营销活动-满额送-管理-草稿箱激活活动。
  9. 下单购买某个商品后,在服务通知消息中可以领取或者转发社交立减金
  10. 领取,结束

上面的步骤,缺一不可,需要小伙伴一步步的调试和试错,幸运的是,我已经都试过错,所以把经验总结一下,希望小伙伴们不会再次趟坑,创建社交立减金活动的源码也是有的哦~

好了,话不多说,对于上面的10步,前4步不需要讲,不清楚的小伙伴可以看看我的历史文章,有对应的讲解,下面从第5步开始说起。

创建代金券并设置跳转小程序

下面先讲解接口的方式,完成配置社交立减金活动奖品准备环节,通过本接口开发者可以创建和支付打通的代金券,并设置代金券跳转小程序使用,在 base_info 中新增设置字段"pay_info",详情参考创建卡券接口。

协议:https
http请求方式: POST
请求URL:https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN
POST数据格式:JSON

对于POST的数据可以参考我的历史文章微信卡券创建,或者查看以下官方文档:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21515658940X5pIn

注意:

  1. 卡券提交前需检查是否有传:“pay_info”、“is_swipe_card”: true 字段;
  2. 卡券的起止时间应大于当前时间;如当前时间为:2018/1/17 0:0:0,起止时间需大于当前时间:2018/1/17 13:30:03 (时间精确到秒);
  3. 需设置最低消费门槛,如:5元代金券,满10元可用。 “reduce_cost”: 5 ,“least_cost”:10 。

推荐查看我的文章,里面有一些字段的注意事项,这里就不细讲了,下面说一下第二种方式,就是直接通过微信商户平台创建代金券,创建完成后,需要在“微信支付商户平台 -营销中心-管理代金券-草稿箱”中激活对应卡券,获取卡券id后,可继续创建立减金活动。

创建支付后领取立减金活动接口

重头戏来了,可以通过此接口创建立减金活动。将已创建的代金券cardid、跳转小程序appid、发起支付的商户号等信息通过此接口创建立减金活动,成功返回活动id即为创建成功。

协议:https
http请求方式: POST
请求URL:https://api.weixin.qq.com/card/mkt/activity/create?access_token=ACCESS_TOKEN
POST数据格式:JSON

大白话解释一下,上面的代金券cardid就是通过接口返回的卡券ID,或者是通过手动创建后的卡包ID,就是乱七八糟一串英文的那一个,例如:pX2-vjpU_MT1gFDsP8lNl15PdaFS,官方的POST示例可以查看文档:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21515658940X5pIn

好消息来了,这个接口我已经封装在sdk中了,封装为方法便于大家使用,下面是调用方法和具体方法的代码。

调用方法:

/*** 创建支付后领取立减金活动接口** @author yclimb* @date 2018/9/18*/
private void createCardActivity() {WXUtils wxUtils = new WXUtils();wxUtils.createCardActivity("2018-09-18 18:00:00", "2018-09-18 19:59:59", 3, 1,1, "pX2-vjpU_MT1gFDsP8lNl15PdaZE", "100",null, false);
}

方法源码:


/*** 创建支付后领取立减金活动接口* 通过此接口创建立减金活动。* 将已创建的代金券cardid、跳转小程序appid、发起支付的商户号等信息通过此接口创建立减金活动,成功返回活动id即为创建成功。* 接口地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21515658940X5pIn** @param begin_time               活动开始时间,精确到秒* @param end_time                 活动结束时间,精确到秒* @param gift_num                 单个礼包社交立减金数量(3-15个)* @param max_partic_times_act     每个用户活动期间最大领取次数,最大为50,默认为1* @param max_partic_times_one_day 每个用户活动期间单日最大领取次数,最大为50,默认为1* @param card_id                  卡券ID* @param min_amt                  最少支付金额,单位是元* @param membership_appid         奖品指定的会员卡appid。如用户标签有选择商户会员,则需要填写会员卡appid,该appid需要跟所有发放商户号有绑定关系。* @param new_tinyapp_user         可以指定为是否小程序新用户(membership_appid为空、new_tinyapp_user为false时,指定为所有用户)* @return json* @author yclimb* @date 2018/9/18*/
public JSONObject createCardActivity(String begin_time, String end_time, int gift_num, int max_partic_times_act,int max_partic_times_one_day, String card_id, String min_amt,String membership_appid, boolean new_tinyapp_user) {try {// 创建活动接口之前的验证String msg = checkCardActivity(begin_time, end_time, gift_num, max_partic_times_act, max_partic_times_one_day, min_amt);if (null != msg) {JSONObject resultJson = new JSONObject(2);resultJson.put("errcode", "1");resultJson.put("errmsg", msg);return resultJson;}// 获取[商户名称]公众号的 access_tokenString accessToken = this.getAccessToken(WXConstants.WX_MINI_PROGRAM_CODE);// 调用接口传入参数JSONObject paramJson = new JSONObject(1);// info 包含 basic_info、card_info_list、custom_infoJSONObject info = new JSONObject(3);// 基础信息对象JSONObject basic_info = new JSONObject(8);// activity_bg_color 是   活动封面的背景颜色,可参考:选取卡券背景颜色basic_info.put("activity_bg_color", CardBgColorEnum.COLOR_090.getBgName());// activity_tinyappid  是   用户点击链接后可静默添加到列表的小程序appid;basic_info.put("activity_tinyappid", WXPayConstants.APP_ID);// mch_code   是   支付商户号basic_info.put("mch_code", WXPayConstants.MCH_ID);// begin_time  是   活动开始时间,精确到秒(unix时间戳)basic_info.put("begin_time", DateTimeUtil.getTenTimeByDate(begin_time));// end_time  是   活动结束时间,精确到秒(unix时间戳)basic_info.put("end_time", DateTimeUtil.getTenTimeByDate(end_time));// gift_num  是   单个礼包社交立减金数量(3-15个)basic_info.put("gift_num", gift_num);// max_partic_times_act  否   每个用户活动期间最大领取次数,最大为50,不填默认为1basic_info.put("max_partic_times_act", max_partic_times_act);// max_partic_times_one_day    否   每个用户活动期间单日最大领取次数,最大为50,不填默认为1basic_info.put("max_partic_times_one_day", max_partic_times_one_day);// card_info_list    是   可以配置两种发放规则:小程序新老用户、新老会员JSONArray card_info_list = new JSONArray(1);JSONObject card_info = new JSONObject(3);// card_id 是   卡券IDcard_info.put("card_id", card_id);// min_amt  是   最少支付金额,单位是分card_info.put("min_amt", String.valueOf(new BigDecimal(min_amt).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).intValue()));/** membership_appid   是   奖品指定的会员卡appid。如用户标签有选择商户会员,则需要填写会员卡appid,该appid需要跟所有发放商户号有绑定关系。* new_tinyapp_user 是   可以指定为是否小程序新用户* total_user   是   可以指定为所有用户* membership_appid、new_tinyapp_user、total_user以上字段3选1,未选择请勿填,不必故意填写false*/if (StringUtils.isNotBlank(membership_appid)) {card_info.put("membership_appid", membership_appid);} else {if (new_tinyapp_user) {card_info.put("new_tinyapp_user", true);} else {card_info.put("total_user", true);}}card_info_list.add(card_info);// 自定义字段,表示支付后领券JSONObject custom_info = new JSONObject(1);custom_info.put("type", "AFTER_PAY_PACKAGE");// 拼装json对象info.put("basic_info", basic_info);info.put("card_info_list", card_info_list);info.put("custom_info", custom_info);paramJson.put("info", info);// 请求微信接口,得到返回结果[json]HttpEntity<JSONObject> entity = new HttpEntity<>(paramJson, this.getHttpHeadersUTF8JSON());JSONObject resultJson = restTemplate.postForObject(WXURL.WX_CARD_ACTIVITY_CREATE_URL, entity, JSONObject.class, accessToken);// {"errcode":0,"errmsg":"ok","activity_id":"4728935"}System.out.println(resultJson.toJSONString());return resultJson;} catch (Exception e) {WXPayUtil.getLogger().error(e.getMessage(), e);}return null;
}/*** 创建活动接口之前的验证** @param begin_time               活动开始时间,精确到秒* @param end_time                 活动结束时间,精确到秒* @param gift_num                 单个礼包社交立减金数量(3-15个)* @param max_partic_times_act     每个用户活动期间最大领取次数,最大为50,默认为1* @param max_partic_times_one_day 每个用户活动期间单日最大领取次数,最大为50,默认为1* @param min_amt                  最少支付金额,单位是元* @return msg str* @author yclimb* @date 2018/9/18*/
public String checkCardActivity(String begin_time, String end_time, int gift_num, int max_partic_times_act,int max_partic_times_one_day, String min_amt) {// 开始时间不能小于结束时间if (DateTimeUtil.latterThan(end_time, begin_time, DateTimeUtil.TIME_FORMAT_NORMAL)) {return "活动开始时间不能小于活动结束时间";}// 单个礼包社交立减金数量(3-15个)if (gift_num < 3 || gift_num > 15) {return "单个礼包社交立减金数量(3-15个)";}// 每个用户活动期间最大领取次数,最大为50,默认为1if (max_partic_times_act <= 0 || max_partic_times_act > 50) {return "每个用户活动期间最大领取次数,最大为50,默认为1";}// 每个用户活动期间单日最大领取次数,最大为50,默认为1if (max_partic_times_one_day <= 0 || max_partic_times_one_day > 50) {return "每个用户活动期间单日最大领取次数,最大为50,默认为1";}// 最少支付金额,单位是元if (BigDecimal.ONE.compareTo(new BigDecimal(min_amt)) > 0) {return "最少支付金额必须大于1元";}return null;
}

对应的全部代码,可以查看我的github,地址如下:

https://github.com/YClimb/wxpay-sdk/blob/master/src/main/java/com/weixin/pay/util/WXUtils.java

创建成功后,会返回一个 “activity_id”: “123456” 的json数据,也就是立减金活动id咯,如果创建失败,也不要着急,查看上面说到的官方文档,创建接口下有对应的返回码说明,
已知是足够解决问题了。

活动创建成功后,需要登陆“微信支付商户平台 -营销中心-营销活动-满额送-管理-草稿箱”激活活动,激活后,社交立减金投放成功。可以通过支付行为进行验证。

PS:激活活动后,活动是通过满额送行为发送给用户的,而且是自动发放,如果你在平台上购买的商品价格满足规则,则会在服务通知中显示社交立减金的信息,此活动需要用户主动领取才行,用户领取的券最终就是咋们最初创建的代金券,此代金券使用规则和正常代金券一样。

PPS:社交立减金可以分享转发给朋友,这个是他的特点,对于每个活动的代金券规则和份数,大家一定要注意,根据场景投放。

结语

以上为社交立减金相关的解释和源码,小伙伴们一定要注意看看官方文档哦,具体的源码可以看我的github,里面对每个方法有详细的注释。

如果小伙伴有遇到解决不了的问题,可以关注作者微信公众号,加入讨论群中发出疑问,和小伙伴们一起解决哦~

​如果想要提前一览源码的小伙伴,可以先看看我的 github,地址如下:

​https://github.com/YClimb/wxpay-sdk/blob/master/README.md ​

关注作者微信公众号,点击下方讨论群,扫码即可加入微信支付讨论群与小伙伴一起探讨哦~

到此本文就结束了,关注公众号查看更多推送!!!



浅析微信支付:开通社交立减金活动、创建立减金及领取使用的相关文档和源码相关推荐

  1. 浅析微信支付:开通社交立减金活动、创建立减金及领取使用的相关文档和源码...

    本文是[浅析微信支付]系列文章的第十七篇,主要讲解在在微信平台中,如何创建优惠券,开通社交立减金,并为用户配置发送立减金. 上篇文章已经为大家讲解了如何在微信公众平台创建优惠券并为用户发券,这片文章是 ...

  2. 浅析微信支付:商户平台代金券或立减优惠开通、指定用户代金券发放、查询等

    本文是[浅析微信支付]系列文章的第十四篇,主要讲解在如何开通商户平台的代金券或立减优惠功能,商家向指定用户发送代金券,查询发送记录,代金券信息等. 浅析微信支付系列已经更新十四篇了哟-,没有看过的朋友 ...

  3. 浅析微信支付:1前篇大纲

    以下会分几个步骤讲一下我学习微信支付的过程,也是一部辛酸史,也是希望朋友们不要再次跌进坑里,节省时间. 1.公司需要 如标题一般,公司来了这么个需求,需要接入微信支付,那就必须搞定他了,相信大部分的小 ...

  4. 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)

    本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...

  5. 浅析微信支付:统一下单接口

    本文是[浅析微信支付]系列文章的第五篇,主要讲解如何调用统一下单接口生成预支付单及调起支付页面. 浅析微信支付系列已经更新四篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:微信公众号网页授权 ...

  6. php微信商户下载对账单,浅析微信支付:下载对账单和资金账单

    本文是[浅析微信支付]系列文章的第九篇,主要讲解商户下载对账单接口和资金账单接口的实现和一些注意事项. 浅析微信支付系列已经更新九篇了哟-,没有看过的朋友们可以看一下哦. 在商户平台中,商家也可以下载 ...

  7. 浅析微信支付:开发前的准备

    本文是[浅析微信支付]系列文章的第三篇,主要会讲一下在开发前的一些注意事项. 浅析微信支付系列已经更新两篇了哟-,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 浅析微信支付:微信支付简单介绍( ...

  8. 浅析微信支付:申请退款、退款回调接口、查询退款

    本文是[浅析微信支付]系列文章的第八篇,主要讲解商户如何处理微信申请退款.退款回调.查询退款接口,其中有一些坑的地方,会着重强调. 浅析微信支付系列已经更新七篇了哟-,没有看过的朋友们可以看一下哦. ...

  9. 浅析微信支付:支付结果通知

    本文是[浅析微信支付]系列文章的第六篇,主要讲解支付成功后,微信回调商户支付结果通知的处理. 浅析微信支付系列已经更新五篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:统一下单接口 浅析微信支 ...

最新文章

  1. PCL基础2:点云赋值
  2. 在CentOS 6.8 x86_64上安装nginx 1.10.3
  3. PLUICameraViewController 拍照页面崩溃
  4. 因退休太无聊,Python创始人加入微软!
  5. Wi-Fi速度慢的十个原因以及解决办法
  6. day21 计算器作业
  7. oracle ebs form视频,ORACLE EBS FORM利用模板开发步骤
  8. Android系统介绍
  9. 团队作业8——测试与发布(Beta阶段)
  10. [Java基础]接口组成(默认方法,静态方法,私有方法)
  11. 从一个hibernate配置文件中了解到的东西
  12. openstack-keystone简记
  13. MySQL Front远程连接数据库
  14. IDEA查看Java源码技巧
  15. 【Python百日基础系列】Day73 - dash实例:系统发育树
  16. 100位量子计算机算力,最快!我国量子计算机实现算力全球领先
  17. OpenCV之 图像染色
  18. Miracle2.1 列表页面显示附件链接
  19. C++代码实现图片调色
  20. 【算法】ACO蚂蚁寻路最短路径TSP问题-多篇文章总结

热门文章

  1. 福特sync恢复出厂设置_急急急啊!福特sync服务中心如何注册
  2. android 高性能手机排行榜,2020年9月安兔兔Android旗舰手机性能跑分排行榜前十名推荐榜单...
  3. 陕西省计算机考研学校,陕西省有哪些考研院校?哪些高校考研比较容易,性价比高?...
  4. 伽利略变换的极限式证明及推论
  5. 利用阿里云主机快速搭建基于wordpress的个人博客网站
  6. rust 输出读取文件
  7. 什么可以有助睡眠质量?五年睡不好的我现在用这几个东西
  8. 2018首届传神者大会:“语言+新技术”将推动语言产业生态化发展 2018首届传神者大会圆满落幕,“语言+新技术”或开启全球深度互联时代 智联未来,跨界赋能 1211首届传神者大会圆满落幕...
  9. 亚太融媒+ |「APEC投资+/产业+」:私募基金与产业基金 | 稳略产业基金观察
  10. 沈向洋、洪小文与恩师Raj Reddy聚首对话,畅谈AI之路