概述
整一個微信掃碼用戶帳號綁定功能,為了滿足用戶帳號綁定場景的需要,通過生成用戶自己的二維碼,用戶掃描后,公眾號可以接收到事件推送。如下
1、用戶登錄掃碼

2、綁定成功
實現思路
掃碼綁定賬戶,其實就是掃描帶有用戶信息的二維碼,微信端接收到消息,會向服務器推送一個掃描事件,服務端接收到信息,進行處理,進而在界面進行信息反饋。用戶登錄系統=》生成帶有用戶id的二維碼=》用戶打開微信掃碼=》
微信服務器向我們的系統回調掃描事件=》得到掃描的用戶id+openid=>
進行綁定操作=》進而把結果反映到界面
主要代碼實現
1、獲取二維碼string domain = BqoolWebSite.WebSiteMapping[BqoolWebSiteType.BigCRMWebService][CommonSetting.GetEnvironmentMode()]; string url = domain + "/api/WeChat/GetQrCode"; var data = new GetQrCodeParam() { Account = "xxxxx", //Account User_ID = "xxxxx",//User_ID Date = DateTime.UtcNow.ToUnixTimestamp(), Action = BaseRequestParam.ActionType.Get, IsRefresh = false //是否強制刷新 默認false }; _nLogger.Info($"WeChat GetQrCode Call BigCRM Web - Url : {url}, data : {data.ToJsonString()}"); var result = HttpTools.EncryptPost
(url, data); _nLogger.Info($"WeChat GetQrCode Call BigCRM Web Result - Url : {url}, result : {result.ToJsonString()}"); if (result.Success && result.Data != null) { // result.Data GetQrCodeResult }
2、獲取綁定信息
string domain = BqoolWebSite.WebSiteMapping[BqoolWebSiteType.BigCRMWebService][CommonSetting.GetEnvironmentMode()];
string url = domain + "/api/WeChat/GetBindInfo";
var data = new GetBindInfoParam()
{
Account = "xxxxx", //Account
User_ID = "xxxxxx",//User_ID
Date = DateTime.UtcNow.ToUnixTimestamp(),
Action = BaseRequestParam.ActionType.Get
};
_nLogger.Info($"WeChat GetBindInfo Call BigCRM Web - Url : {url}, data : {data.ToJsonString()}");
var result = HttpTools.EncryptPost
(url, data); _nLogger.Info($"WeChat GetBindInfo Call BigCRM Web Result - Url : {url}, result : {result.ToJsonString()}"); if (result.Success && result.Data != null) { // result.Data GetBindInfoResult }
3、取消訂閱
string domain = BqoolWebSite.WebSiteMapping[BqoolWebSiteType.BigCRMWebService][CommonSetting.GetEnvironmentMode()];
string url = domain + "/api/WeChat/Disconnect";
var data = new GetBindInfoParam ()
{
Account = "xxxx", //Account
User_ID = "xxxxx",//User_ID
Date = DateTime.UtcNow.ToUnixTimestamp(),
Action = BaseRequestParam.ActionType.Update
};
_nLogger.Info($"WeChat Disconnect Call BigCRM Web - Url : {url}, data : {data.ToJsonString()}");
var result = HttpTools.EncryptPost< GetBindInfoParam, ApiResult>(url, data);
_nLogger.Info($"WeChat Disconnect Call BigCRM Web Result - Url : {url}, result : {result.ToJsonString()}");
if (result.Success )
{
//ApiResult
}
來源於UP技術控 ,作者conan5566
https://www.iwmyx.cn/wxsmy.html