一、現有:公司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.微信公衆平臺 申請賬號
2.微信小程序登錄時序
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
3.參考開發