- 系统涉及的消息模块
总结:
- 公众号订阅消息可以跳H5和小程序
- 小程序的订阅消息只能跳到小程序
- 公众号订阅消息只能通过公众号发送,如果用户取消了关注公众号,则通过服务通知发送
- 小程序订阅消息是通过服务通知发送
短信业务分析
为了满足各个客户端短信发送情况的需求,根据短信的业务行为和场景分析,总结出短信3种功能属性,分别是处理模式,短信类型和短信服务提供商.具体如下图:
针对阿里云短信的发送,需要注意的问题:
- 新西兰、印尼、越南、中国台湾 From请求参数需填"Alirich"(如果不填,可能会发送失败或者收不到),并且发送台湾地区短信,需提工单给阿里云报备(台湾运营商的要求).
- 美国、加拿大需要填写10dlc注册后运营商提供的SenderID
- 新加坡须拥有新加坡实体号码,并完成Sender ID 注册 ,具体看(https://help.aliyun.com/zh/sms/product-overview/announcement-on-the-enforcement-of-the-regulations-governing-the-imda?spm=a2c4g.11186623.0.0.42384bc2UUurWx), 不注册也可以发送,终端收到会显示成Likely-SCAM,如果需要注册,请您自行前往Singapore SMS Sender ID Registry (“SSIR”)注册, 具体步骤如下:
3.1 在https://smsregistry.sg/web/login上创建一个账户;
3.2 填写公司的注册名称(基于ACRA https://www.acra.gov.sg/)、注册地址、UEN、账户管理员的全名、联系电话和邮件地址;
3.3 合作的短信供应商名单选择Alibaba Cloud (Singapore) Private Limited. ;
3.4 需注册的Sender ID(先到先得原则)
3.5 公司的Corppass,用于公司验证。若无Corppass,则需提供公用事业账单或电信账单。
3.6 费用说明:每个注册公司将收取500新元一次性注册费,每个sender id需要200新元年费(税前),从2023年2月1日开始计费。
短信接口设计
发送短信
URL: https://域名/sms/sendSms
Type: POST
Content-Type: application/json
1.接口说明
- 此接口适用于短信单发场景,同时可支持群发(最多可向 1000 个手机号码发送同样内容的短信),但群发会有一定延迟。
- 此接口只有发送短信的功能,其他业务操作需各端实现,比如滑块验证等.
2.请求参数
参数名称 | 类型 | 是否必须 | 描述 | 示例值 |
countryCode | String | 是 | 国际区号 | |
phoneNumbers | String | 是 | 接收短信的手机号码 发送多个手机号请以英文逗号分隔 | |
code | String | 是 | 验证码,定义为JSON格式,可传多个参数 | {"code":"987456"}或者{"perid":"1","prizeValue":"888"} |
templateId | String | 是 | 业务code,针对每个客户端,每种发送的模版和短信服务提供商不同,都会有一个不同的TemplateId | 比如:瘦吧APP使用阿里云短信,发送验证码会有一个TemplateId,如果发送春节奖品排行,又会有一个TemplateId. |
注: 模版code设计
一个模版标识可能对应于多个短信服务提供商.针对多个短信服务提供商,提供相同模版,便于失败重试机制.
3.返回参数
参数名称 | 类型 | 描述 | 示例值 |
- | Object | 返回数据 | |
code | String | 请求状态码 | 200 |
msg | String | 状态码的描述 | |
data | Object | 响应数据 |
短信表设计
IM业务分析
IM聊天,服务端现在主要提供的功能是系统的提示,通过系统提示提醒用户消息内容或引导用户去完成某种行为。通过业务行为和场景分析,主要得出IM推送3种主要的功能属性,体如下:
IM接口设计
发送单聊普通消息
URL: https://域名/im/private/publish
Type: POST
Content-Type: application/json
1.接口说明
- 此接口支持批量发送的功能,单次最多向1000个用户发送消息.
- 每个消息服务提供商对发送频率有不同限制, 大批量推送消息时,需注意发送频率,否则可能会造成消息的丢失.(瘦吧APP 测试Appkey:4z3hlwrv4oeat 最大的qps是 6600 生产Appkey:25wehl3u2si9w 最大的qps是 42000)
2.请求参数
参数名称 | 类型 | 是否必须 | 描述 | 示例值 |
sender | String | 是 | 发送者 | |
receiver | String | 是 | 接受者 发送多个用户请以英文逗号分隔 | 50,600,1594 |
content | String | 是 | 发送内容,定义为JSON格式 | {"content":"xxx","nickName":"xxx"} |
templateId | String | 是 | 模版code,与消息服务提供商和消息类型有关 |
3.返回参数
参数名称 | 类型 | 描述 | 示例值 |
- | Object | 返回数据 | |
code | String | 请求状态码 | 200 |
msg | String | 状态码的描述 | |
data | Object | 响应数据 |
邮箱业务分析
发送邮箱业务比较简单,只需配置好邮件服务器,并配好账号密码,就可以发送邮箱.
邮箱接口设计
发送邮箱消息
URL: http://域名/mail/sendMail
Type: POST
Content-Type: application/json
1.接口说明
- 瘦吧app使用的是阿里邮箱,要注意具体每天发送额度和发送频率,需根据邮箱域名咨询阿里云才能知道.
2.请求参数
参数名称 | 类型 | 是否必须 | 描述 | 示例值 |
receiver | String | 是 | 收件人 发送多个用户请以英文逗号分隔 | |
title | String | 是 | 标题 | |
content | String | 是 | 内容 |
3.返回参数
参数名称 | 类型 | 描述 | 示例值 |
- | Object | 返回数据 | |
code | String | 请求状态码 | 200 |
msg | String | 状态码的描述 | |
data | Object | 响应数据 |
微信公众号-模版消息接口设计
模版消息接口
URL: https://域名/weChat/officialAccount/sendTemplateMsg
Type: POST
Content-Type: application/json
1.接口说明
- 公众号模版消息去除自定义颜色,因此发送内容不支持颜色参数,具体查看链接 https://developers.weixin.qq.com/community/develop/doc/000a2ae286cdc0f41a8face4c51801?page=4
2.请求参数
参数名称 | 类型 | 是否必须 | 描述 | 示例值 |
receiver | String | 是 | 接受者openid 发送多个用户请以英文逗号分隔 | |
msgContent | String | 是 | 发送内容,定义为JSON格式 | {"serviceType":"问题咨询","serviceStatus":"待回复","time":"123655465"} |
templateId | String | 是 | 模版code,与消息服务提供商和消息类型有关 |
3.返回参数
参数名称 | 类型 | 描述 | 示例值 |
- | Object | 返回数据 | |
code | String | 请求状态码 | 200 |
msg | String | 状态码的描述 | |
data | Object | 响应数据 |
小程序-订阅消息接口设计
订阅消息接口
URL: https://域名/weChat/applet/sendSubscribeMsg
Type: POST
Content-Type: application/json
1.接口说明
2.请求参数
参数名称 | 类型 | 是否必须 | 描述 | 示例值 |
receiver | String | 是 | 接受者openid 发送多个用户请以英文逗号分隔 | |
msgContent | String | 是 | 发送内容,定义为JSON格式 | {"serviceType":"问题咨询","serviceStatus":"待回复","time":"123655465"} |
templateId | String | 是 | 模版code,与消息服务提供商和消息类型有关 |
3.返回参数
参数名称 | 类型 | 描述 | 示例值 |
- | Object | 返回数据 | |
code | String | 请求状态码 | 200 |
msg | String | 状态码的描述 | |
data | Object | 响应数据 |