2017-09-23 07:31:24 towtotow 阅读数 880
  • 微信开发核心基础

    很多公司,企业甚至政府部分都开通了微信公众号,想要发挥微信的大价值,就必须让微信跟自己的平台或者数据库联系起来。这套《微信开发核心基础》,用一个完整的案例,告诉你微信开发流程,错误调试,如何看开发文档,学习你就可以自己做些独立开发。这个教程使用PHP为开发工具,建议你先学习子恒老师的《微信公众号使用》。学习完后,可以跟我反馈,如果好的话,会推出《微信服务号开发》教程,QQ/微信:68183131

    12901 人正在学习 去看看 秦子恒

虽然子恒老师已经出品了100多部微信公众号开发的视频教程,

但也不可能把微信所有的api开发接口讲完,

因为微信每过一段时间,

就会推出新的api接口,

你可以实现更多新功能,

还有可能微信把一些接口进行修改或者取消。


13kanwendang.jpg


作为一个优秀的微信开发人员,

你必须学会看微信的开发文档。


这一点对大部分刚接触公众号开发的人来说,

感觉到很难,

因为开发环境的原因,

或者文档说明不够详细,


子恒老师在这一节微信开发视频教程中告诉你怎么看公众号开发文档…

怎么看微信公众号开发文档视频教程在线观看

http://edu.csdn.net/course/detail/2586/40531

2018-04-19 16:54:03 ws932734384 阅读数 24642
  • 微信开发核心基础

    很多公司,企业甚至政府部分都开通了微信公众号,想要发挥微信的大价值,就必须让微信跟自己的平台或者数据库联系起来。这套《微信开发核心基础》,用一个完整的案例,告诉你微信开发流程,错误调试,如何看开发文档,学习你就可以自己做些独立开发。这个教程使用PHP为开发工具,建议你先学习子恒老师的《微信公众号使用》。学习完后,可以跟我反馈,如果好的话,会推出《微信服务号开发》教程,QQ/微信:68183131

    12901 人正在学习 去看看 秦子恒

        本人最近要做微信公众号网页开发的项目,其中有个需求是判断用户是否关注公众号,由于之前没有接触过微信授权的东西,所以提前开始做调研。在度娘上看了好多博客、百度知道、百度经验、知乎问答等,还仔细阅读了微信公众平台开发文档,大致了解到:

        微信网页授权分两种,第一种是snsapi_base(静默授权,用户无感知),第二种是snsapi_userinfo(第一次授权需要用户点击登录确认)。静默授权只需要两步就能拿到开发者需要的openID,而第二种授权方式,一共需要四步,可以拉取到用户信息(昵称、头像等)。具体过程这里不在赘述,参阅微信开发者文档。


        但是,本人发现一个不好的事情,获取到的用户信息里,并没有度娘告诉我的用于判断用户是否关注公众号的字段 subscribe 。然后,继续查阅博客、百度知道、百度经验、知乎问答,其中,有一篇博客让我如获至宝,下面是博客的截图:


        然后我就天真的相信,只有在unionID机制下,获取到的用户信息里才会有 subscribe 字段。后来,查看微信公众平台开发文档,其中有一段:


        那么,只有把公众号绑定到微信开放平台上才能使用unionID机制。所以自己就注册了一个微信开放平台,要绑定公众号的时候发现,只有完成开发者资质认证才能绑定。但是认证需要:



        以上只是一部分。这哪儿是我一个开发能做的事儿啊,所以向项目经理说明了情况,又向技术中心老大申请……,经过了一系列繁杂又不太顺利的流程。最后,让我来注册,需要什么材料找行政要。

        当然,在协调的过程中,我也没闲着,咨询了做过微信网页授权的同事,自己也继续翻阅微信开发文档(相当烂)、在本地尝试授权,获取用户信息,最终发现:不需要unionID机制,也能获取用户基本信息,拿到 subscribe 字段。那么正题来了!


微信网页授权并获取用户基本信息(是否关注公众号、头像、昵称等)步骤:  

          1、用户同意授权,获取code(使用静默授权即可)

               参阅 微信网页授权 第一步

            2、通过code换取  网页授权access_token  和 openID(此处的access_token为网页授权过程专用)

                参阅 微信网页授权 第二步

            3、使用AppId和AppSecret:获取access_token

                参阅  获取access_token

            4、使用openID和access_token获取用户基本信息

                参阅 获取用户基本信息(包括UnionID机制)

最终获取到的用户基本信息如下图:

        


        好了,到这里终于拿到了我需要的判断用户是否关注公众号的字段: subscribe 。


        饶了这么大圈子,有些感触:微信公众平台开发文档不容易看懂,unionID机制到底是啥,绑定了开放平台才叫unionID机制吗,那我现在这种调接口的方法(并没有绑定微信开放平台)属于unionID机制吗。

        再多说一句,其实这些逻辑,绝大部分是在后端完成的(access_token、appsecret安全等级都比较高)。所以,作为前端,只要调接口==》回调地址,再调接口==》得到用户基本信息。

2017-09-24 07:35:58 towtotow 阅读数 162
  • 微信开发核心基础

    很多公司,企业甚至政府部分都开通了微信公众号,想要发挥微信的大价值,就必须让微信跟自己的平台或者数据库联系起来。这套《微信开发核心基础》,用一个完整的案例,告诉你微信开发流程,错误调试,如何看开发文档,学习你就可以自己做些独立开发。这个教程使用PHP为开发工具,建议你先学习子恒老师的《微信公众号使用》。学习完后,可以跟我反馈,如果好的话,会推出《微信服务号开发》教程,QQ/微信:68183131

    12901 人正在学习 去看看 秦子恒

老子在道德经里说:道生一,一生二,二生三,三生万物,

也就量说任何事情都是有规律可循的。


不要看微信开发文档内容繁多,

但也是有规律,

当你抓住根本的东西,

再去看文档时,


14leixing.jpg


就会觉得很轻松了,

这一节微信开发教程中,

子恒老师告诉你微信开发中操作本质…

微信公众号开发的4大操作类型视频教程在线观看

http://edu.csdn.net/course/detail/2586/42231

2017-12-13 21:02:47 qq_26245325 阅读数 16403
  • 微信开发核心基础

    很多公司,企业甚至政府部分都开通了微信公众号,想要发挥微信的大价值,就必须让微信跟自己的平台或者数据库联系起来。这套《微信开发核心基础》,用一个完整的案例,告诉你微信开发流程,错误调试,如何看开发文档,学习你就可以自己做些独立开发。这个教程使用PHP为开发工具,建议你先学习子恒老师的《微信公众号使用》。学习完后,可以跟我反馈,如果好的话,会推出《微信服务号开发》教程,QQ/微信:68183131

    12901 人正在学习 去看看 秦子恒

用户关注公众号回调

参考资料

  1. 微信公众平台
  2. 微信公众号开发文档

基本信息

  1. AppID:开发者ID,微信公众号的唯一标识
  2. AppSecret:开发者密码,操作微信公众号的验证
  3. IP白名单:获取access_token时,需要IP白名单才可以获取
  4. OpenID:微信用户在当前公众号的唯一标识
  5. UnionID:微信用户在当前开放平台账号的所有公众号和应用情景下的唯一标识
  6. 服务器配置:
    (1)地址:配置以后,用户对公众号的操作(关注、发消息),微信会转到该链接
    (2)令牌:用作生成签名
    (3)密钥:消息加密
    开发-配置
    官方文档教程

7.验证服务器地址,6(1) 配置时要在链接下,原样输出微信发送GET请求的参数echostr,验证成功过后,才能配置完成。


公众号关注后的推送

  1. 在上一步的服务器地址中,加入以下代码
    (1) 接口加密,官方PHP-DEMO
include_once "wxBizMsgCrypt.php";
// 第三方发送消息给公众平台
$encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG";
$token = "pamtest";
$timeStamp = "1409304348";
$nonce = "xxxxxx";
$appId = "wxb11529c136998cb6";
$text = "<xml><ToUserName><![CDATA[oia2Tj我是中文jewbmiOUlr6X-1crbLOvLw]]></ToUserName><FromUserName><![CDATA[gh_7f083739789a]]></FromUserName><CreateTime>1407743423</CreateTime><MsgType><![CDATA[video]]></MsgType><Video><MediaId><![CDATA[eYJ1MbwPRJtOvIEabaxHs7TX2D-HV71s79GUxqdUkjm6Gs2Ed1KF3ulAOA9H1xG0]]></MediaId><Title><![CDATA[testCallBackReplyVideo]]></Title><Description><![CDATA[testCallBackReplyVideo]]></Description></Video></xml>";


$pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);
$encryptMsg = '';
$errCode = $pc->encryptMsg($text, $timeStamp, $nonce, $encryptMsg);
if ($errCode == 0) {
    print("加密后: " . $encryptMsg . "\n");
} else {
    print($errCode . "\n");
}

$xml_tree = new DOMDocument();
$xml_tree->loadXML($encryptMsg);
$array_e = $xml_tree->getElementsByTagName('Encrypt');
$array_s = $xml_tree->getElementsByTagName('MsgSignature');
$encrypt = $array_e->item(0)->nodeValue;
$msg_sign = $array_s->item(0)->nodeValue;

$format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%s]]></Encrypt></xml>";
$from_xml = sprintf($format, $encrypt);

// 第三方收到公众号平台发送的消息
$msg = '';
$errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);
if ($errCode == 0) {
    print("解密后: " . $msg . "\n");
} else {
    print($errCode . "\n");
}

(2) 关注、发送消息的推送 官方文档

$xmlStr = $GLOBALS['HTTP_RAW_POST_DATA'];
if(!empty($xmlStr )){
   // 解析该xml字符串,利用simpleXML
   libxml_disable_entity_loader(true);
   //禁止xml实体解析,防止xml注入
   $requestXml = simplexml_load_string($xmlStr , 'SimpleXMLElement', LIBXML_NOCDATA);
   //判断该消息的类型,通过元素MsgType
   switch ($requestXml ->MsgType){
       case 'event':
           //判断具体的时间类型(关注、取消、点击)
           $event = $requestXml->Event;
           if ($event=='subscribe') { // 关注事件
               //查看用户是否首次关注
               $content = '欢迎关注!';
               if(isset($requestXml->EventKey)) {
                       // 扫特定二维码关注会携带相对应的参数,具体见下一篇
               }

           }elseif ($event=='CLICK') {//菜单点击事件
           }elseif ($event=='VIEW') {//连接跳转事件
           }
           break;
     case 'text'://文本消息
        break;
     case 'image'://图片消息
        break;
     case 'voice'://语音消息
        break;
     case 'video'://视频消息
        break;
     case 'shortvideo'://短视频消息
        break;
     case 'location'://位置消息
        break;
     case 'link'://链接消息
        break;
   }
}

(3)接受关注的数据格式
这里写图片描述

(4) 回复消息

//基本消息模板
private $mMsgTemplate = [
        'text' => '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>',//文本回复XML模板
        'image' => '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[image]]></MsgType><Image><MediaId><![CDATA[%s]]></MediaId></Image></xml>',//图片回复XML模板
        'music' => '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[music]]></MsgType><Music><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><MusicUrl><![CDATA[%s]]></MusicUrl><HQMusicUrl><![CDATA[%s]]></HQMusicUrl><ThumbMediaId><![CDATA[%s]]></ThumbMediaId></Music></xml>',//音乐模板
        'news' => '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>%s</ArticleCount><Articles>%s</Articles></xml>',// 新闻主体
        'news_item' => '<item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>',//某个新闻模板
    ];
//回复
echo sprintf($this->mMsgTemplate ['text'], $requestXml->FromUserName, $requestXml ->ToUserName, time(), $msgContent);
2018-01-10 10:26:10 joefany 阅读数 100738
  • 微信开发核心基础

    很多公司,企业甚至政府部分都开通了微信公众号,想要发挥微信的大价值,就必须让微信跟自己的平台或者数据库联系起来。这套《微信开发核心基础》,用一个完整的案例,告诉你微信开发流程,错误调试,如何看开发文档,学习你就可以自己做些独立开发。这个教程使用PHP为开发工具,建议你先学习子恒老师的《微信公众号使用》。学习完后,可以跟我反馈,如果好的话,会推出《微信服务号开发》教程,QQ/微信:68183131

    12901 人正在学习 去看看 秦子恒

官方链接:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

扫描关注后登录

需要填写接口配置,一个公网能访问的域名,推荐用natapp。

填写JS接口安全域名 ,设置JS接口安全域后,通过关注该测试号,开发者即可在该域名下调用微信开放的JS接口,请阅读微信JSSDK开发文档

注意:不知道啥原因,用自己的帐号申请测试帐号后貌似不能立即关注,但是同事的微信能关注。自己的帐号是过了两天就能关注了。



微信公众号开发(1)

阅读数 380

没有更多推荐了,返回首页