• 微信扫码用户帐号绑定


    概述

    整一个微信扫码用户帐号绑定功能,为了满足用户帐号绑定场景的需要,通过生成用户自己的二维码,用户扫描后,公众号可以接收到事件推送。

    如下

    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

  • 相关阅读:
    javaScript删除对象、数组中的null、undefined、空对象、空数组方法
    js数组方法 改变原数组和不改变原数组的方法整理
    js时间戳与日期格式的相互转换
    [原创]jquery更换头像
    css样式大全(copy自一个大佬的博文)
    【原创】实现点击按钮更换表格皮肤效果
    Cookie和Seesion
    常用正则表达式
    【原创】javaWeb完成增删查改功能
    javaWeb完成注册功能
  • 原文地址:https://www.cnblogs.com/star8521/p/14535369.html
Copyright © 2020-2023  润新知