微信公众平台开发小知识

基础准备

• 微信开发会有一个跨域的问题,按照如下路径设置一个 js 安全域名
设置--> 公众号设置 --> 功能设置
如图:

js安全域名.png

MP_verify_xgOsd3v07w4vWlN4.txt 文件一定要放在域名的根目录下面
微信开发最重要的两个参数openid access_token, 很多接口必须有这两个参数才能调通.
• 基本配置
在 开发 --> 基本配置-->服务器配置 填写相关信息,使用js-sdk必须配置,微信用作消息校验,否则,微信的基本功能使用不了.ip白名单是获取基础token的服务器的ip,否则ip无效

ip白名单.png
基本配置.png

微信网页授权

按照如下路径找到微信网页授权的文档:
开发 --> 开发者工具 --> 开发者文档 -->微信网页开发 --> 微信网页授权
文档说明也是非常详细的,主要三步:
• 用户同意授权,获取返回的 code

    var redirect_uri = "http://xxxx.com";
    var encodeUrl = encodeURI(redirect_uri);
    var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxx&redirect_uri="+encodeUrl+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
    window.location.href = url;

参数说明:
a. appid公众号的唯一标识
b. redirect_uri 网页授权回调的链接,即,用户点击同意授权后的跳转页面,需要使用encodeURI 对链接处理
c. response_type 返回类型,填写 code 即可
d. scope 的参数可以是 snsapi_basesnsapi_userinfo
snsapi_base: 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid 的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面).
snsapi_userinfo: 以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
很多接口都是通过 openid才能调用成功的。
e. state重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节,可以不传
f. wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数

• 通过code换取网页授权access_token
获取code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?  appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 

参数说明:
a. appid公众号的唯一标识
b. secret 公众号的appsecret
c. code 填写上一步获取的code参数
d. grant_type 填写为authorization_code
返回参数说明:
a. access_token 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
b. expires_in access_token接口调用凭证超时时间,单位(秒)
c. refresh_token 用户刷新access_token
openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
d. scope 用户授权的作用域,使用逗号(,)分隔

• 拉取用户信息(需scope为 snsapi_userinfo)
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
请求方法

 https://api.weixin.qq.com/sns/userinfo? access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN  

参数说明
a. access_token 网页授权接口调用凭证,注意:此access_token与基础支持的 access_token不同
c.openid 用户的唯一标识
d.lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

正确时返回的JSON数据包如下:

 {    "openid":" OPENID",  
      " nickname": NICKNAME,   
       "sex":"1",   
       "province":"PROVINCE"   
       "city":"CITY",   
       "country":"COUNTRY",    
       "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5 WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ
       4eMsv84eavHiaiceqxibJxCfHe/46",  
       "privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],    
       "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" 
 } 

此时就获取用户的信息了

• openid 是微信用户 对公众的唯一标示,不会因为设备的不同而发生变化,也没有时间限制,即使取消再关注,所生成的openid也是唯一的.

开发中的问题

▸1 .图片添加最大只能选择9张

          wx.chooseImage({   

                  count: maxNum, // 默认9  

                    sizeType: ["original", "compressed"], // 可以指定是原图还是压缩图,默认二者都有

                    sourceType: ["album"], 

                   success: function (res) {

                    },fail:function(res){
                   
                    }   });

▸2 .图片上传只能一张一张上传

            wx.uploadImage({   

               localId:currentlocalId,      // 图片的localID

                isShowProgressTips: 0,      // 默认为1,显示进度提示

                success: function (res) {

     
                },fail:function(res){
                   //上传失败
                }
            }); 

▸3 .微信公众号的一些功能的开发,比如,授权,拍照,语音,必须线上才能调试,如果有知道测试环境能调试的,求指教.

相关链接

1.http://blog.csdn.net/zzwwjjdj1/article/details/52222137
2.http://blog.sina.com.cn/s/blog_13f84ca390102wnm2.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容