热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

闲扯&回顾由于过年回来事情比较多,所以断了一段时间。今天赶紧接着。之前我们介绍完了卡券从创建到发放的基本流程,今天我们将介绍卡券和Code的相关操作。本文主要介绍NodeJS

闲扯&回顾

    由于过年回来事情比较多,所以断了一段时间。今天赶紧接着。之前我们介绍完了卡券从创建到发放的基本流程,今天我们将介绍卡券和Code的相关操作。本文主要介绍NodeJS语言下wechat-card模块的操作方式,另外对重要的地方进行特别说明,以便其他语言开发者参考。

 

卡券ID列表

    这个接口可以查询到公众号下的所有卡券ID,需要注意下,这里获取的是卡券ID,而不是卡券信息,使用方法和查询门店列表类似,也是通过 offset 和 count 两个参数来获取列表,接口如下:

1
https: //api.weixin.qq.com/card/batchget?access_token=TOKEN

    通过wechat-card 进行操作的方法如下:

1
2
3
wxCard.card.getCardIdList(0,
10, 
function (err, ids) {
     // do something ...
});

    这里的两个参数不做过多说明,可以参照查询门店列表接口处的介绍。

 

卡券查询

    这个接口时用来通过 卡券ID 查询卡券的详细信息的接口,可以和上面获取卡券ID列表的接口搭配来获取所有卡券的信息。接口如下:

1
https: //api.weixin.qq.com/card/get?access_token=TOKEN    

    通过 wechat-card 获取卡券信息方式如下:

1
2
3
4
5
6
//
下列卡券id仅用于demo,在实际中不存在
var  cardId =  "p1Pj9jr90_SQRaVqYI239Ka1erkI" ;
 
wxCard.card.getCardDetail(cardId,  function (err, card) {
     // do something ...
});

    接口返回的数据可以参见文档,其实就是添加卡券时候的卡券信息而已。

 

修改卡券

    这个接口用于修改卡券信息,当然并不是所有的信息,只是一部分无关紧要的信息而已,很多关键信息都是不允许修改的。接口如下:

1
https: //api.weixin.qq.com/card/update?access_token=TOKEN

    在 wechat-card 修改卡券的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//
下面的cardid仅用于demo,实际中不存在
var  card = {
     card_id:  "p1Pj9jr90_SQRaVqYI239Ka1erkI" ,
     base_info: {
       // .. some of base info
     },
     special_info: {
       // ...
     }
};
 
wxCard.card.modifyCard(card,  function (err) {
     // do something ...
});

    需要注意的问题有

    1. 在修改时候需要传递一个参数对象,包含要修改的卡券的card_id base_info,和special_info, 当然这里base_info和special_info可以修改的字段是非常少的,具体哪些字段可以修改,大家可以参照微信官方的文档。而且,在卡券修改后,已经发放的卡券也会随之而改变,而且修改某些字段后,已经审核通过的卡券会重新进入待审核状态,审核失败的卡券则不会重新审核,具体哪些字段可以出发重新审核,请大家参照官方文档。

    2微信接口中所有的查询接口都有缓存,所以有一定的几率会造成一种情况,在修改卡券成功后立刻进行查询,有可能缓存没有更新,而导致查询到的数据没有变化,这里有待微信进行优化了

    3. 在修改卡券有效期的时候,需要注意的一点是:修改的时间范围不能小于原有的时间范围,比如当前卡券有效期为2015-03-12,那么修改的日期必须为2015-3-12以后。

 

删除卡券

    这个接口可以通过卡券ID删除已经创建的卡券, 接口为:

1
https: //api.weixin.qq.com/card/delete?access_token=TOKEN

    使用 wechat-card 删除卡券的方法如下:

1
2
3
4
5
6
//
下面的cardid仅用于demo,实际中不存在
var  cardId =  "p1Pj9jr90_SQRaVqYI239Ka1erkI" ;
 
wxCard.card.deleteCard(cardId,  function (err) {
     // do something ..
});

    这里需要注意的问题有:删除卡券以后,已经被领取的Code还是有效的,可以通过核销Code的方式进行核销。

 

Code查询

    查询Code接口可以通过code查询对应的信息,包括code对应的卡券card id,领取code用户的openid,以及卡券的有效期。这里比较奇怪的是没有code的状态,这里期待微信以后可以支持。

    接口为:

1
https: //api.weixin.qq.com/card/code/get?access_token=TOKEN

    在 wechat-card 中查询code的方法如下:

1
2
3
4
5
6
//
下面的code仅用于demo,实际中不存在
var  code =  "882077290937" ;
 
wxCard.code.getCodeDetail(code,  function (err, details) {
     // details: 为Object类型 包含用户openid,卡券id和卡券有效时间
});

  

Code修改

    这个接口用于修改已经领取的Code值。

    这个接口使用的情况有:当卡券为自定义SN时,并且允许转赠卡券时,当卡券赠送给朋友以后,为了保证Code安全性,需要修改该Code的值,推荐在转赠以后收到事件推送(事件推送为微信向自定义服务器推送数据,在之后我们会进行详细介绍)时进行修改。

    接口为:

1
https: //api.weixin.qq.com/card/code/update?access_token=TOKEN

    在 wechat-card 中修改Code的方法为:传递参数为原始Code,对应的卡券ID, 和新的Code

1
2
3
4
5
6
7
8
//
下面的卡券id和code仅用于demo,实际中不存在
var  code =  "882077290937" ;
var  cardId =  "p1Pj9jr90_SQRaVqYI239Ka1erkI" ;
var  newcode =  "883920048827" ;
 
wxCard.code.modifyCode(code,
cardId, newcode, 
function (err) {
     // do something ...
});

  

设置Code失效

    这个接口可以通过Code将已经领取的卡券设置为失效。接口为:

1
https: //api.weixin.qq.com/card/code/unavailable?access_token=TOKEN

    在 wechat-card 中设置Code失效的方法为:

1
2
3
4
5
6
//
下面的code仅用于demo,实际中不存在
var  code =  "882077290937" ;
 
wxCard.code.setCodeExpire(code,  function (err) {
     // do something ...
});

  

修改卡券库存

    这个接口是用来补充卡券的库存值或者减少库存值,卡券库存即在创建卡券时 base_info.sku.quantity 字段。这个字段无法再修改卡券中进行修改,需要单独的接口进行修改,接口为:

1
https: //api.weixin.qq.com/card/modifystock?access_token=TOKEN

    在 wechat-card 中修改卡券库存的方法为:调用方法的第二个参数为要改变的库存值,比如增加10个,为+10, 比如减少20个,为-20。

1
2
3
4
5
6
7
8
9
10
11
12
//
下面的cardid仅用于demo,实际中不存在
var  cardId =  "p1Pj9jr90_SQRaVqYI239Ka1erkI" ;
 
//
减少10库存
wxCard.card.modifyCardStock(cardId,
-10, 
function (err) {
    // do something ...
});
 
//
增加10库存
wxCard.card.modifyCardStock(cardId,
10, 
function (err) {
     // do something ...
});

 

总结

    今天先介绍到这里,这篇内容略多,但是操作都是比较简单的,有需要注意的地方也已经标出。最近有好多朋友发邮件问一些问题,之后我会针对我们自己在开发终于到的问题和大家提出的问题专门总结一篇问题总结。大家如果有其他的问题和建议,可以发站内信共同讨论。感谢大家。


推荐阅读
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • Python Selenium WebDriver 浏览器驱动详解与实践
    本文详细介绍了如何使用Python结合Selenium和unittest构建自动化测试框架,重点解析了WebDriver浏览器驱动的配置与使用方法,涵盖Chrome、Firefox、IE/Edge等主流浏览器。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文详细探讨了Java事件处理机制的核心概念与实现原理,内容浅显易懂,适合初学者逐步掌握。通过具体的示例和详细的解释,读者可以深入了解Java事件模型的工作方式及其在实际开发中的应用。 ... [详细]
  • 随着物联网技术的快速发展,NB-IoT(窄带物联网)作为一项关键的技术,正逐步成为实现大规模设备互联的重要手段。本文将详细介绍NB-IoT技术的特点、应用场景及其在实际项目中的应用实例。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 2017年软件开发领域的七大变革
    随着技术的不断进步,2017年对软件开发人员而言将充满挑战与机遇。本文探讨了开发人员需要适应的七个关键变化,包括人工智能、聊天机器人、容器技术、应用程序版本控制、云测试环境、大众开发者崛起以及系统管理的云迁移。 ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
  • 本文探讨了如何在社交媒体平台上高效地获取和管理好友列表。通过分析当前流行的社交应用,如微信、Facebook等,提出了一系列实用的方法和技巧,帮助用户优化好友管理流程,提升社交体验。文章还介绍了相关工具和插件,以进一步简化操作步骤,确保用户能够快速、准确地管理和维护好友关系。 ... [详细]
  • 2018年热门趋势:轻松几步构建高效智能聊天机器人
    2018年,构建高效智能聊天机器人的简易步骤成为行业焦点。作为AI领域的关键应用,聊天机器人不仅被视为企业市场智能化转型的重要工具,也是技术变现的主要途径之一。随着自然语言处理技术的不断进步,越来越多的企业开始重视并投资于这一领域,以期通过聊天机器人提升客户服务体验和运营效率。 ... [详细]
author-avatar
手浪用户穹谷之鹰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有