微信公众号开发
AdvancedAPIs.CustomApi.SendText(null, WeixinOpenId, GetDownloadInfo(codeRecord));
多应用打账号打通 如果你们的产品是一个系列应用,又或者同时有移动应用和web应用,那么按照微信的规定,每个应用都必须在开放平台进行登记和审核(需要绑定包名,所以不能多个应用使用同一个签名),这也就意味着这些应用每个都是独立的应用!前面说过,这样会导致这一系列应用当用户授权后,返回的OpenID都不一样,无法唯一标识用户!这时就需要使用UnionID机制来解决这个问题。 如下: 1. 同一个授权用户,在同一个开放平台账号下的应用中进行授权,返回的UnionID是相同的。 2. 同一个授权用户,在绑定到同一个开放平台账号下的公众账号进行授权,返回的UnionID是相同的。
参考资料: http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
//1生成微信授权链接 string url = OAuth.GetAuthorizeUrl(appId, "https://wx.kuiyu.net/user/bind.html", Nonce, OAuthScope.snsapi_userinfo); //2得到code user/bind页面接收微信回传的code,state //3使用code,accesstoken得到openid var result = OAuth.GetAccessToken(appId, appSecret, code); var AccessToken=result.access_token; if (result.errcode != ReturnCode.请求成功) { return Content("错误:" + result.errmsg); } //获取用户绑定信息 log.Info("当前请求授权的OpenId=" + result.openid); var result = OAuth.GetAccessToken(appId, appSecret, code); if (result.errcode != ReturnCode.请求成功) { return Content("错误:" + result.errmsg); } //获取用户绑定信息 log.Info("当前请求授权的OpenId=" + result.openid); //4.通过accesstoken与openid得到用户信息 var userInfo = OAuth.GetUserInfo(result.access_token, result.openid); userInfo.nickname //微信用户昵称 userInfo.headimgurl //微信用户头像 userInfo.openid //微信用户openId
其它版本Senparc.Weixin.MP.AdvancedAPIs.OAuthApi.GetAuthorizeUrl()
开放平台 Senparc.Weixin.Open.OAuthAPIs.OAuthApi.GetAuthorizeUrl()