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

回顾

之前我们介绍完了卡券从创建到发放的基本流程,今天我们将介绍卡券和Code的相关操作。本文主要介绍NodeJS语言下wechat-card模块的操作方式,另外对重要的地方进行特别说明,以便其他语言开发者参考。

卡券ID列表

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

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_idbase_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 ...
});

总结

今天先介绍到这里,这篇内容略多,但是操作都是比较简单的,有需要注意的地方也已经标出。

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值