微信太會賺錢了,要用這個開放平臺的登陸連接,收了300元大洋啊。雖然公司出錢,可是別人大公司賺錢分分鐘到手啊。api
https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect微信
首先,頁面的連接,把這個連接套在A標籤下,打開就是微信自動生成的一個二維碼。 PS:記得把APPID換掉,還有返回地址也換掉。session
還有,APPID必定要用開放平臺下:管理中心——》網站應用——》你建立的應用下的APPIDapp
被虐了很久,用的錯(公衆平臺的)APPID。告知我,Scope參數錯誤或沒有Scope權限。微信公衆平臺
網站微信第三方登陸裏面,用的是 微信開放平臺 中申請的 APPID 和 APPSECRET。網站
2015年8月25日11:06:13url
有點不明白的是,微信公衆平臺和微信開放平臺獲取的兩個用戶OPENID的值,居然不同。這讓人有點費解了?spa
回調地址下的代碼以下:code
public partial class WeiXinLogin : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { WeiXinLoginAPI(); } public const string APPID = ""; public const string APPSECRET = ""; public void WeiXinLoginAPI() { string errorCode = "微信登陸過時,請從新登陸!"; var code = Request.QueryString["Code"]; try { if (!string.IsNullOrEmpty(code)) { var client = new System.Net.WebClient(); client.Encoding = System.Text.Encoding.UTF8; var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", APPID, APPSECRET, code); var data = Tools.GetPage(url); Log.Debug("第一個接口", data); var serializer = new JavaScriptSerializer(); var obj = serializer.Deserialize<Dictionary<string, string>>(data); string accessToken; if (!obj.TryGetValue("access_token", out accessToken)) return; var opentid = obj["openid"]; url = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", accessToken, opentid); data = Tools.GetPage(url); Log.Debug("第二個接口", data); var userInfo = serializer.Deserialize<Dictionary<string, object>>(data); #region 同步數據到您的平臺操做 Begin if (opentid != null && userInfo["nickname"] != null) { try { Users _MTUsers = GetModel( openid); //獲取用戶信息 if (_MTUsers == null) { Insert(_MTUsers); //若是不存在,建立 } else { _MTUsers.LastLogin = DateTime.Now; _MTUsers.LastUpdated = DateTime.Now; Instance.MTUsers.Business.Update(_MTUsers); //存在則修改 } Session["CurrentUser"] = _MTUsers; //將當前登陸的用戶放入session中 } catch (Exception ex) { Response.Write("異常信息:" + ex.ToString()); } } else { errorCode = "微信登陸身份過時"; } #endregion } } catch (Exception ex) { Log.Debug("【異常】", errorCode + ";異常信息:" + ex.Message.ToString()); } } }