• 微信公众号开发小结


    微信开发教程

    1.注册微信开发者账号

    传送门

    2.开发者基本功能介绍

    2.1 功能(自动回复,自定义菜单在开发者中心开启了回调URL和Token后会失效)

    自动回复,自定义菜单,投票管理
    

    2.2 管理

    消息管理:用户消息
    用户管理:
    素材管理:可以上传图文信息,语音,视屏
    

    2.3 推广:字面意思
    2.4 统计:用户,图文,菜单,消息,接口,网页分析
    2.5 设置

    公众号设置:账号设置,功能设置(隐私,水印是否可见,JS接口安全域名)
    微信认证: 认证后能多很多功能
    安全中心: 安全设置(access_token获取要设置域名白名单)
    违规记录: 账号违规记录
    

    2.5 开发

    基本设置:设置appId,appsecret,ip白名单,服务器配置等等)
    

    3.服务器配置(启动开发者模式要配置服务器)服务器端口只能为80或443

    3.1 设置服务器地址(URL),令牌(Token),消息加解密密钥,消息加解密方式
    例子:
    服务器地址映射推荐用(Sunny-Ngrok)可以url映射到127.0.0.1:80
    配置信息

                   服务器地址(URL):http://itcaijw123.ngrok.cc
                       令牌(Token):ITcaijw
    消息加解密密钥(EncodingAESKey):n6QhBFfaUrAmi421xyQzMEqh3brUOgCaM9UksvWpPAD
                    消息加解密方式:明文模式
    

    服务器语法:(nodejs为例子) token要保持一致

     app.get("/", (req, res, next) => {
        const { timestamp, signature, nonce, echostr } = req.query;
        //这里token保持一致
        var token = 'ITcaijw';
        //变成数组,排序然后再转为字符串,最后sha1加密
        var testArr = [token, timestamp, nonce];
    	var testTmp = testArr.sort().join('');
    	var scyptoString = sha1(testTmp);
        //判断是否相等,相等的话就返回echostr
      	if(signature == scyptoString){
      	  res.send(echostr);
      	} else {
      	  res.send('error');
      	}
      })
    

    4.access_token获取

    4.1 APPID和APPSECRET改成自己的appId和appsecret
    4.2 7200后会失效,要写一个自动刷新接口
    4.3 获取access_token要设置白名单

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    

    有了access_token就可以愉快的开发自定义菜单,消息管理,素材管理,用户管理等等

    5.JSSDK使用步骤

    綁定域名

    引入js文件

    js SDK初始化

    5.1 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
    备注:登录后可在“开发者中心”查看对应的接口权限
    5.2 api_ticket获取
    5.2.1 ACCESS_TOKEN改成获取到的ACCESS_TOKEN
    5.2.2 7200后会失效,要写一个自动刷新接口

    https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
    

    5.3 签名生成(signature)
    签名生成传送门

    demo代码

    http://demo.open.weixin.qq.com/jssdk/sample.zip
    5.4 js调用(appId为开发者自己的appId)

    wx.config({
            debug: true, 
            appId: '{{appId}}', //开发者自己的appId
            timestamp:'{{timestamp}}', //时间戳。
            nonceStr:'{{noncestr}}',//随机字符串。
            signature:'{{signature}}',//签名
            jsApiList: [
              'chooseImage',
              'onMenuShareTimeline',
              'onMenuShareAppMessage',
              'onMenuShareQQ',
              'onMenuShareWeibo',
              'onMenuShareQZone',
              'startRecord',
              'stopRecord',
              'onVoiceRecordEnd',
              'closeWindow',
              'openLocation',
              'getLocation',
              'uploadImage',
              'scanQRCode'        ] 
          });
    
          wx.ready(function(){
          	//检测是否报错
    	      wx.error(function(res){
    	          console.log(res);
    	      });
    	    // 分享
    	    wx.onMenuShareAppMessage({
    	        title: '朋友', // 分享标题
    	        desc: '', // 分享描述
    	        link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    	        imgUrl: '', // 分享图标
    	        type: '', // 分享类型,music、video或link,不填默认为link
    	        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
    	        success: function () { 
    	            // 用户确认分享后执行的回调函数
    	        },
    	        cancel: function () { 
    	            // 用户取消分享后执行的回调函数
    	        }
    	    });
          })
    

    详细请见微信公众号技术文档
    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

  • 相关阅读:
    J2EE技术(一)——JNDI
    软考注定是一次伤痛
    Ultraedit使用技巧收集
    ArcGIS Server Java 自定义Functionality(转)
    用C#动态刷新KML
    ArcGIS Server Java 自定义task
    Python动态刷新kml
    投影坐标知识小结
    tomcat配置数据源通过JNDI访问mysql数据库
    ArcGIS Server Java自定义tool
  • 原文地址:https://www.cnblogs.com/caijw/p/7355301.html
Copyright © 2020-2023  润新知