一、现有:公司Portal Web系统。

新需求:开发微信小程序,能查询 Portal 系统的数据。

新需求详解:

入口:“magic公司”微信公众号,点击底部菜单“智慧服务”-“货主在线门户”,打开 “XXX在线服务“” 小程序。

用户的微信号首次打开 打开 “XXX在线服务“”  小程序时(此微信号还未绑定Portal账号的),弹出登录页的微信绑定/手机绑定页面,需要微信快捷绑定 或 手机号绑定(手机号及短信验证码),提交时通过手机号找到对应的Portal账号.

未能查找到有效的Portal账号(账号启用,对应货主启用)则提示“此手机号未开通XXX在线服务,请联业务员”,绑定失败;否则绑定成功,直接显示此货主的运营首页。

二、用户账号表user_customer

CREATE TABLE `user_customer` (
  `id` bigint(64) NOT NULL,
  `user_name` varchar(20) DEFAULT NULL COMMENT '用户账号',
  `company_id` bigint(64) DEFAULT NULL COMMENT '组织id',
  `password` varchar(50) DEFAULT NULL COMMENT '登录密码',
  `random_code` int(4) DEFAULT NULL COMMENT '密码盐值',
  `real_name` varchar(20) DEFAULT NULL COMMENT '用户姓名',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态(0禁用 ,1启用)',
  `type` int(1) DEFAULT '2' COMMENT '账号类型(po用户)',
  `phone` varchar(11) DEFAULT NULL COMMENT '手机号',
  `customer_id` bigint(64) DEFAULT NULL COMMENT '所属货主',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `create_user` bigint(64) DEFAULT NULL,
  `update_user` bigint(64) DEFAULT NULL,
  `deleted` tinyint(1) DEFAULT '0',
  `bind_wechat` tinyint(1) DEFAULT NULL COMMENT '微信小程序绑定(1-绑定,0-未绑定)',
  `open_id` varchar(100) DEFAULT NULL COMMENT '微信openId',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

三、后端开发流程

1.提供微信小程序登录接口。小程序拿code换取openId。

2.提供获取用户绑定手机号信息。小程序拿着sessionKey、encryptedData(加密)、iv,调后台接口获取手机号(解密)。

3.微信小程序绑定Portal账号(user_customer,手机号和openId绑定)。

两种方式:

第一种:微信快捷绑定,小程序获取手机号;

第二种:输入手机号、验证码,绑定。(这里先跳过)

4.微信小程序portal登录(参数传openId)

5.微信小程序portal账号解绑(参数传openId)

6. 接口1-4网关不拦截(不需要校验token及权限),需要配置网关不拦截。

 

四、参考资料

1.微信公众平台 申请账号

https://mp.weixin.qq

2.微信小程序登录时序

https://developers.weixin.qq/miniprogram/dev/framework/open-ability/login.html 

3.参考开发

https://github/binarywang/weixin-java-miniapp-demo 

更多推荐

微信小程序后端开发