首页 > 微信应用  > 

C#开发微信公众号接口开发详细介绍

C#开发微信公众号接口开发详细介绍
这篇文章主要介绍了C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取,需要的朋友可以参考下

这篇文章主要介绍了c#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取,需要的朋友可以参考下

具体实现方式不多说了,请看下文

一、前言

当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号密码。作为微信接口开发人员我们知道网页授权可以用作微信网页用作安全登录,带参数二维码的使用用作记录用户来源,模板消息用作购物消费等消息的通知,但是很少看到有综合利用这些高级接口做出体验比较好的公众账号,这里分享一些我开发的用户绑定和验证码的一些心得。所需要的接口有基础的回复、网页授权、带参数二维码、模板消息。所以这里所讲的必须是认证服务号(没办法腾讯接口限制真的好为难我们这些开发人员)。

二、需求

1.pc网站绑定个人微信账号2.pc网站获取验证码(用户注册即绑定、找回密码等场景)

三、实现流程及与传统方法对比

1.pc网站绑定个人微信账号:

传统的方法--是输入账号和密码,然后通过网页授权绑定,下次可以免登陆

利用微信接口--方法1、网页授权

在pc端生成一个网页授权的二维码:url+id=32132312其中id为用户的唯一标识,用微信扫描 保存id和openid在对应的用户表即绑定成功

       方法2、申请带参数二维码+网页授权

在通过微信接口申请临时的带参数二位码显示在pc网页上,所带参数是根据登录用户生成的唯一标识一串数字 ,当用户扫描的时候微信回复的参数即为这串数字,将这串数字和openid保存在数据库对应的用户表中即可。

注意:在这建议使用第2中方法:第1中方法是直接在网页中绑定,用户可能没有关注我们的公众账号,而第二种方法当用户没有关注的时候提示先关注,关注完之后自动绑定,并且提示成功,如果关注也是直接跳转到我们的公众账号

四、用户绑定流程图

1.网页授权绑定的流程图:

2.带参数二维码绑定

五、用户绑定实现方法主要代码

这里以绑定第二种方法为例

1.首先用户登录pc网站 获取到唯一标识也可以即时生成,然后以唯一标识为参数向微信服务器申请带参数的二维码方法详情可参照我之前的文章:C#微信公众号接口开发实例-高级接口-申请带参数的二维码

主要代码获取ticket 其中 scene_id即为用户唯一标识 二维码链接https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET 嵌入到网页中即可

 /// <summary>  /// 调用微信接口获取带参数临时二维码的ticket  /// 使用方法:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET  /// </summary>  /// <param>二维码带的参数  /// <returns>json:ticket:换取二维码的凭证,expire_seconds:凭证有效时间,url:二维码解析后的地址。此处返回ticket 否则返回错误码</returns>  public string GetQrcode(string appid, string appsecret, Int32 scene_id)  {    string QrcodeUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";//WxQrcodeAPI接口   string AccessToken = getTokenSession(appid, appsecret);//拉取全局的AccessToken11   QrcodeUrl = string.Format(QrcodeUrl, AccessToken);   string PostJson = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": " + scene_id + "}}}";   string ReText = WebRequestPostOrGet(QrcodeUrl, PostJson);//post提交   Dictionary<string> reDic = (Dictionary<string>)Jss.DeserializeObject(ReText);   if (reDic.ContainsKey("ticket"))      return reDic["ticket"].ToString();//成功   }  else   {     return reDic["errcode"].ToString();//返回错误码   } }</string></string>

C#开发微信公众号接口开发详细介绍由讯客互联微信应用栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#开发微信公众号接口开发详细介绍