• 2369阅读
  • 5回复

[经验分享]网易云信红包实现 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-08-08
— 本帖被 云信小鱼 设置为精华(2016-08-09) —
前言
云信并不原生支持红包消息,所以红包消息需要应用方通过自定义消息和自定义通知配合实现。
需求分析
做红包消息之前,我们先进行一下需求的分析,将用户可见的分发红包的过程拆解成程序可以理解的步骤。一个完整的红包收发流程如下:

  • 发出红包
  • 拆开红包
  • 通知红包已拆完

翻译成云信内的术语则是:

  • 红包发送者发送一条带有红包信息的自定义消息给消息接受者 (群/个人)
  • 消息接受者发送拆红包的指令给应用服务器
  • 应用服务器发送一条通知消息知会红包发起者和接受者红包已被拆完

需求分析完毕,只需要按照步骤实现即可。


发送红包消息
云信原生不支持红包消息,第一步需要构造一个表示红包的消息。一般而言我们需要定义如下字段

  • 消息子类型 (即红包类型)
  • 红包金额
  • 分红包人数
  • 瓜分红包方式 (平分,随机等)
  • 当前红包 id (用于服务器鉴权等)

具体构造自定义消息的方法可以参考 UI 组件的使用方法。 出于安全和业务完整性的考虑,所有红包消息都推荐由应用服务器代发,而不是通过 SDK 的发送接口进行发送,原因如下
  • 云信 SDK 对消息发送并不做任何限制,但红包消息需要涉及到用户信息鉴权,如获取当前账户余额等信息
  • 使用 SDK 相对于使用服务器代发消息更容易造成数据不一致,如服务器已扣款,但是 SDK 消息并未送达对面。(使用服务器代发也有这个问题,但是相对而言网络情况会好很多,更容易避免)

流程如下


拆红包
拆红包的流程和云信并没有太多关系,接收端直接请求自己应用服务器即可,由应用服务器进行金额的分配并返回数据。


通知红包已拆完
当应用服务器收到拆红包信息并验证成功成功后进行红包金额的分配。金额分配完毕,应用服务器通过发送通知消息给红包发送端和接收端表示红包已拆完。

只看该作者 沙发  发表于: 2016-08-19

只看该作者 板凳  发表于: 2016-09-27
恭喜发财,大吉大利。

只看该作者 地板  发表于: 2016-11-14
怎么查看收到红包和送出红包的记录

只看该作者 4楼 发表于: 2016-11-15
回 18435140256 的帖子
18435140256:怎么查看收到红包和送出红包的记录 (2016-11-14 16:24) 

假如按照我们的建议,红包的发送都是过应用服务器的,那可以在应用服务器查到红包收发记录。且客户端也可以直接拉取历史记录查看

只看该作者 5楼 发表于: 01-09
有谁有网易云信红包实现的代码啊?发来我看看,有重谢!