订阅消息设计

### 问题 - 获取类目下的所有模版,杂个存储 - 每个小程序下的模版标题id是否一样---同一个分类下标题名称相同,模版标题id是相同的 ### 做法,两种方案 - 1、小程服务类目相同,以及推送模版一样,系统维护一套模版,这样模版标题id就相同,同一种情景下为小程序同步模版是相同的。 - 2、第个小程序都自己的分类 1)先获取分类 2)获取分类下的公共标题 3)每个标题下的参数获取 4)用户自己可视化对应参数(我们系统中也需要为每种标题提供可应字段,如订单支付成功,系统能提供什么字段) ### 消息订阅的发送需要用户先订阅,即在移动端需要弹出界面提醒用户是否接受 ### 表结构 #### 模版列表 |列名|类型|说明| |-|-|-| |provider_id|int|为-1时,为整个系统模版| |tid|int|微信模版标题id| |title|string|微信模版标题| |wx_template_id|string|微信模版id| |is_sync|bool|是否同步| |type|int|模版类型,2 为一次性订阅,3 为长期订阅| |skip_content|string|跳转链接模版| |create_time|datetime|添加时间| #### 微信模版参数 |列名|类型|说明| |-|-|-| |provider_id|int|为-1时,为整个系统模版| |tid|int|微信模版标题id| |kid|int|微信模版参数id,模版id为0时,为url链接参数| |type|string|模版参数类型(thing,number,letter,symbol )| |name|string|模版参数中文名称| |replaced|string|参数,替换成什么参数| #### 发送记录表 |列名|类型|说明| |-|-|-| |user_id|int|user_id| |open_id|string|接收者open_id| |tid|int|微信模版标题id| |title|string|标题| |content|string|发送内容| |create_time|datetime|添加时间| ### 商户小程序 |列名|类型|说明| |-|-|-| |app_id|string|小程序或公众号appid| |secret|string|小程序或公众号secret| |app_type|string|类型小程序或公众号| |access_token|string|凭证| |expire|string|过期时间| |provider_id|int|商户id| ### 消息订阅列表 |列名|类型|说明| |-|-|-| |app_id|string|小程序appid| |open_id|string|用户openid| |template_id|string|微信模版消息id| |is_used|int|使用状态| ### 更新说明 - 登录小程序--》开发管理--消息推送配置 > EncodingAESKey 一定要是base64能解密的,可以使用:YXNkZmdoamtscG9pdXl0cmV3cXp4Y3Zibm0xMjM0NTY - 在表wec_official中配置小程序 - 执行订阅初始化SQL脚本 ```sql INSERT INTO `wec_template` (`title_id`, `title`, `template_id`, `synced`, `template_type`, `link`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`, `key_word`) VALUES (3578, '订单发送成功', NULL, NULL, NULL, 'pagesA/tabbar/order/orderdetails', NULL, 1, 0, '2022-06-15 11:34:05', NULL, -1, 0, '2022-06-16 11:27:08', NULL, 'OrderPaySuccess'); INSERT INTO `wec_parameter` (`title_id`, `param_id`, `param_type`, `name`, `variable`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`) VALUES (3578, 0, 'sn', '订单编号', 'oddNumber', 0, 1, 0, '2022-06-15 11:34:05', -1, -1, 0, '2022-06-15 11:39:53', NULL); INSERT INTO `wec_parameter` (`title_id`, `param_id`, `param_type`, `name`, `variable`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`) VALUES (3578, 1, 'thing', '商品信息', 'productName', 1, 1, 0, '2022-06-15 11:34:05', -1, -1, 0, '2022-06-15 11:39:53', NULL); INSERT INTO `wec_parameter` (`title_id`, `param_id`, `param_type`, `name`, `variable`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`) VALUES (3578, 2, 'amount', '支付金额', 'payables', 2, 1, 0, '2022-06-15 11:34:05', -1, -1, 0, '2022-06-15 11:39:53', NULL); INSERT INTO `wec_parameter` (`title_id`, `param_id`, `param_type`, `name`, `variable`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`) VALUES (3578, 3, 'character_string', '订单编号', 'oddNumber', 3, 1, 0, '2022-06-15 11:34:05', -1, -1, 0, '2022-06-15 11:39:53', NULL); INSERT INTO `wec_parameter` (`title_id`, `param_id`, `param_type`, `name`, `variable`, `reorder`, `status`, `creator_id`, `create_time`, `provider`, `provider_id`, `modify_id`, `modify_time`, `remark`) VALUES (3578, 4, 'time', '支付时间', 'createTime', 4, 1, 0, '2022-06-15 11:34:05', -1, -1, 0, '2022-06-15 11:39:53', NULL); ```