• 项目需求:通过用户在微信中打开网页获取用户的openid来实现绑定消费卡的功能。 项目开发:首先我们需要配置微信的运行环境,这里请参考我的第一篇关于微信开发的日志。 第一步我们得去平台配置网页回调授权的页面,...
    微信开发——网页授权
    项目需求:通过用户在微信中打开网页获取用户的openid来实现绑定消费卡的功能。
    项目开发:首先我们需要配置微信的运行环境,这里请参考我的第一篇关于微信开发的日志。
    第一步我们得去平台配置网页回调授权的页面,位于网页服务——>网页账号——>修改,可以参照图一:修改回调域名参见图二
    图一:设置回调域名地址
    图二:设置OAuth2.0网页授权回调域名
    第一步完成之后,我们去做第二步,我们分析需要何种授权方式?
    方式一:以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面),这种方式只能获取openid;
    方式二:以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
    第三步:两种方式的对比,这个请大家参照微信开发者文档。
    第四步:介绍一下它的流程
    1、引导用户进入授权页面(上面我们配置好的域名)同意授权,获取code
    2、通过code换取网页授权access_token(与基础支持中的access_token不同)
    3、如果需要,开发者可以刷新网页授权access_token,避免过期
    4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
    step1:获取code
    <?php
    public function getCode()
    {//定义数组
    	$dt = array(
                'appid'         => WX_APPID,     //微信APPID
                'redirect_uri'  => REDIRECT_URI, //回调地址
                'response_type' => 'code',
                'scope'         => 'snsapi_base',//授权方式 snsapi_base 或者 snsapi_userinfo
                'state'         => $_SERVER['REQUEST_TIME']
            );
            $api = 'https://open.weixin.qq.com/connect/oauth2/authorize?'#wechat_redirect';
            header('Refresh:0; url='.$api);
    }
    ?>
    

    step2:获取openid
    <?php
      public function executeGetOid()
     {
            $code = $_GET["code"];
            $dt = array(
              'appid'      => WX_APPID,
              'secret'     => WX_APPSECRET,
              'code'       => $code,
              'grant_type' => 'authorization_code'
            );
            $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?'.http_build_query($dt);
            $json_obj = $this->DoCurl($get_token_url);
            $openid = $json_obj['openid'];
    }

    step3:获取用户信息(当scope为snsapi_userinfo时有效)
    <?php
         public function executeGetuserinfo()
        { 
            $access_token = file_get_contents('access_token.txt');
            $dt = array(
              'access_token' => $access_token,
              'openid'       => $this->openid,
              'lang'         => 'zh_CN'
            );
            $get_userinfo_url = 'https://api.weixin.qq.com/sns/userinfo?'.http_build_query($dt);
            $json_obj = $this->DoCurl($get_userinfo_url);
        }
    ?>

    step4:封装方法DoCurl()(这个的配置是在服务器中开启的 具体百度 (windows直接开就行,linux需要phpize编译安装加入模块)
    <?php
     public function DoCurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_HEADER,0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
            $res = curl_exec($ch);
            curl_close($ch);
            $json_obj = json_decode($res,true);
            return $json_obj;
        }
    ?>

    
    最后的最后,本人博客水平有限,希望有问题的大家指证出来,我好修改。我的邮件是cyanskye0513@outlook.com




    展开全文
  • 以前写过一篇《微信公众平台开发的一点收获》,这一篇说说微信公众平台网页开发的知识。微信公众平台应该是国内最大的开放平台,对于技术开发人员来说,不管有没有自己的公众号,应该也要有一定的了解,其实只要有一...

    以前写过一篇《微信公众平台开发的一点收获》,这一篇说说微信公众平台网页开发的知识。微信公众平台应该是国内最大的开放平台,对于技术开发人员来说,不管有没有自己的公众号,应该也要有一定的了解,其实只要有一个域名和虚拟主机,就基本上能够尝试着去开发。

    回顾上篇文章的知识点

    (1)上篇文章的内容可以理解为公众号消息开发,这里的消息可以是公众号文章或者是消息会话,用户为了有权使用公众号的功能,必须关注对应的公众号。因为用户关注公众号了,所以开发者可以间接认为有权利获取用户的基本信息,都直接能够拿到用户的 OpenID(在相关接口中)。

    (2)access_token 概念,公众号开发者为了有权调用公众号 API,必须先经过微信的授权,这个授权码就是 access_token(开发者 access_token),这个 access_token 是和开发者绑定的(而非同用户绑定)。

    什么是公众号网页开发呢?

    公众号消息开发是用户必须加入这个公众号,然后开发者利用公众号平台提供的一些 API (功能)和用户来交互。除了公众号文章这里没有网页的概念(文章虽然是网页,但开发者没有任何能力控制)。

    现在考虑这样一种场景,一个开发者要提供一个电商服务,有他自己的业务逻辑(比如页面),通过公众号消息开发是提供不了这样的服务,为了解决这个问题,开发者可以做一个网页,然后在公众号菜单中引入这个网页,这样用户点击菜单打开网页就能使用电商服务。

    还有一种场景,某个服务商提供了一个调查问卷服务(以网页的形式),然后你的微信好友通过消息发送给你,你打开链接就能使用这个服务了(不一定是在公众号中打开)。

    再举个场景,微信有很多第三方服务,比如大众点评,相当于也是打开一个网页。

    为了有效的提供这样场景的服务,微信公众号官方提供了网页开发这个概念,主要包括三部分:

    (1)在微信中打开服务,这时候微信首先相当于一个浏览器,有浏览器就有 Javascript 操作,为了安全性微信这个“浏览器”肯定要做一些限制;为了提供微信的一些本地功能(比如调用相机),微信也提供了一些 JS-SDK,这样开发者就能调用这个 SDK 提供微信的一些功能。

    (2)既然是开放平台,所有的服务都嵌入在微信中,为了让开发者提供的服务更具有一致性(就是外观),微信也提供了 UI 库,有了 UI 库,开发者开发的网页就能更好的适配,实际上这个功能有点鸡肋,很少有用这个库的,都是为了让自己的网页更个性化。

    (3)假如是在微信中嵌入一个网站的网页,由于这个网页和公众号没有任何关系,那么这个网页怎么知道是那个微信用户(OpenID)打开了这个网页呢?公众号通过授权的方式让开发者能够获取用户的信息,这个授权就是标准的 oAuth 协议,通俗的说就是开发者假如需要获取用户信息,首先要取得用户的同意,这样公众号才能让你获取信息。仔细想下为什么消息公众号开发能够直接获取用户信息?

    概括的说,网页开发包括,网页授权、JS-SDK、UI 库。

    网页授权

    由于自己申请的公众号没有微信认证(就是没交钱),所以网页授权这个服务用不了,不过个人使用过微博开放平台的授权,原理差不多,所以简单的描述下。

    (1)要使用网页授权,在后台配置下回调域名就可以,不同于微博开放平台,不用提供回调 URL ,只要域名就可以。

    (2)scope,有两种授权方式,第一种就是假如一个微信用户已经加入公众号(相当于半授权了),那么这种授权方式叫静默授权(snsapi_base),就是说用户看不到官方的授权页面,会直接进入开发者提供的网页中,这种授权方式只能拿到 OpenID(通过其他接口再获取信息)。
    另外一种授权方式可以称之为完整授权(snsapi_userinfo),就是手用户能看到完整的授权页面,经过用户确认后再进入开发者提供的网页中,这种授权方式能够直接拿到用户信息(省去一次接口调用)。

    (3)授权流程

    假如开发者明白 oAuth 协议,这个流程就非常简单了。

    • 首先开发者通过 authorize 接口(传递回调地址和 appid )获取授权地址。
    • 用户打开授权地址并授权后,微信会回调开发者的回调地址,并返回 code 值。
    • 开发者传递 code 调用 access_token 接口获取用户 access_token 和 OpenID 值,这个值的有效期一般是 7200 秒。
    • 为了避免用户频繁授权,开发者可以用即将过期的 access_token 刷新 access_token(refresh_token接口)。
    • 通过传递用户 access_token 和 OpenID 调用 userinfo 接口获取用户信息。

    这里的用户 access_token 和开发者 access_token 不是一回事,分别代表用户授权和公众号授权。

    PHP-SDK 中通过简单的几个函数调用就能实现授权。

    JS-SDK

    在 PC 网页开发中,通过 Javascript 能够调用浏览器的功能;同理微信其实就是一个浏览器,为了调用浏览器(微信)的功能,微信提供了一个 JS-SDK 包,这样就能调用相应的功能了。

    使用很简单,首先引入对应的 js 文件即可。然后在动态网页中配置 config 信息即可

    <script>
    wx.config({
        debug: true,
        appId: 'wx3505a38e6f83b187',
        timestamp: 1490782160,
        nonceStr: 'ogZFeZaYLMhCQiez',
        signature: 'c1bd73bc505840a4db142873306bf10f243444ff',
        jsApiList: [
        ]
    });
    wx.ready(function () {
        document.querySelector('#checkJsApi').onclick = function () {
        wx.checkJsApi({
            jsApiList: [
            'getNetworkType',
            'previewImage'
            ],
            success: function (res) {
            //alert(JSON.stringify(res));
            }
        });
    };
    </script>
    

    使用 JS-SDK 最关键的包括二部分:

    (1)jsapi_ticket ,使用 jsapi_ticket 也是需要微信公众号平台授权的,否则任何人都能使用了。
    jsapi_ticket 是调用相应接口生成的(传递 access_token 参数),这个 access_token 是消息公众号开发者的 access_token(不是用户的),思考下为啥 JS-SDK 不直接使用 access_token 而要使用 jsapi_ticket ?

    (2)获取到 jsapi_ticket 后,会对时间戳、随机数、jsapi_ticket、当前 URL 签名后生成 wx.config,假如微信验证签名通过后,代表能够使用对应的 JS-SDK。

    PHP-SDK 中通过简单的几个函数调用就能生成签名,非常方便。

    UI 库

    UI 库其实非常简单,就理解为一个小型的 bootstrap 库就可以了。在微信上也很少看到开发者用这个库的。思考了下原因,在 PC 网页和公众号上为了保持样式一致性,开发者会用统一的 UI 库,但是微信没有 PC 网页。

    最后说下,没有经过微信认证的开发权限越来越小了,举个例子,假如没有经过微信认证,微信公众号菜单上无法配置网页的 URL。



    作者:虞大胆
    链接:https://www.jianshu.com/p/cca418ab3a8d
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
    展开全文
  • 一、微信小程序打开外部web链接 1、在设置-&amp;amp;gt;项目设置中勾选不校验合法域名...,方便调试 2、在index.wxml删掉里面内容,改为: &amp;amp;lt;view class=&amp;quot;container&amp;quot;&...

    一、微信小程序打开外部web链接

    3步搞定法
    1、在设置->项目设置中勾选不校验合法域名...,方便调试
    在这里插入图片描述
    2、在index.wxml删掉里面内容,改为:

    <view class="container">
     <web-view src="http://www.cungudafa.top/">
     </web-view>
    </view>
    

    3、在左侧可以在小程序里看到我们的外部web链接了
    在这里插入图片描述

    二、微信小程序配置服务器域名

    附:若要配置域名则需要登录 微信公众号平台 ,点击开始配置即可
    在这里插入图片描述在这里插入图片描述

    三、踩坑

    当我真机调试时,出现:
    在这里插入图片描述

    查阅小程序服务后发现:

    • 注意的是web-view的src必须配置https协议的链接
    • <web-view>会默认铺满屏
    • 个人小程序不支持<web-view>,我佛了,转公众号和服务号吧。
    展开全文
  • 设置快捷键打开网页微信微信没有linux的客户端,打开火狐再打开微信麻烦,又不会编写脚本就可以参考本文啦。(其实设置快捷键才是更方便快捷的。)1.复制网址 这个不用说了吧。。。2.找到自定义快捷键设置 ...

    设置快捷键打开网页版微信

    微信没有linux的客户端,打开火狐再打开微信麻烦,又不会编写脚本就可以参考本文啦。(其实设置快捷键才是更方便快捷的。)

    1.复制网址
    这个不用说了吧。。。

    2.找到自定义快捷键设置
    设置–>键盘–>快捷键–>自定义快捷键–>添加(点+)
    出现如图:
    这里写图片描述

    3.写入命令

    (1)名称写入:weixin(写入什么都可以的,没有影响)
    (2)命令写入:/bin/firefox https://wx.qq.com/
    (3)鼠标再点击添加。

    (说明:/bin/firefox 是火狐的可执行脚本(可执行文件),在命令端输入:/bin/firefox 确认后可以打开火狐的)

    4.设置快捷键

    这里写图片描述
    点击上图的:禁用
    在键盘上你就可以设置快捷键啦。

    好啦,赶紧试下。

    参考本文,一样可以设置其他快捷键打开百度,qq,命令端(/bin/bash)噢

    展开全文
  • 微信开发少不了,微信端的测试,但是基于手机调式特别困难,造成浪费大量的时间。这里我记录一下自己使用微信开发工具的经验。(本文只讲述移动开发经验) 1.首先微信公众平台下载相应版本的微信开发工具。地址...
       微信开发少不了,微信端的测试,但是基于手机调式特别困难,造成浪费大量的时间。这里我记录一下自己使用微信开发工具的经验。(本文只讲述移动开发经验)
    
    1.首先微信公众平台下载相应版本的微信开发工具。地址(微信公众平台文档)选择微信网页开发,选择下载就可以。
    2.下载安装后的首页面如下:

    选择1,2扫码登录即可。

    2、选择移动调式,普通调式。


     按照上述步骤连接成功之后,点击开始调式,就会出现实时请求,可以查看对应的参数以及响应。

    4、如下图


    5.选择x5调式


     按照上述步骤,点击开始调式,出现如下页面 

     第一次点击inspect 会出现空白页,这是你需要翻墙,翻墙成功后,就可以点击了出现和chrome调式页面。(注:翻墙工具,我用的是蓝灯,需要的话,可以给我留言)

    6、使用chrome devtool调式,

      1、首先在手机上将普通调式的代理关掉,选择无就行,然后使用usb连接手机,如何连接请自行百度。我这里讲一下我遇到的问题。

    打开chrome浏览器,输入chrome://inspect/#devices,出现offinline,标识设备没有连接。这是应该下载响应手机的驱动,可以到手机官网上下载,或者使用地方工具,例如腾讯管家,或者豌豆荚,会自动下载驱动,安装后就可以出现如下页面。


    7、欢迎大家多多批评指正!!!!!!

     

    展开全文
  • 微信小程序中打开网页需要满足两个条件: 1、在小程序管理后台设置跳转的域名为业务域名,注意这个域名必须是https协议的; 2、需要下载一个校验文件放置跳转域名的服务器根目录下,也就是讲这个跳转域名的...
  • 微信开发中遇到用微信web工具可以打开网页,但是用微信客户端就打不开的时候,可以清空微信客户端的浏览器缓存,然后再测试,应该就可以打开了。微信浏览器缓存清理方法:1、随便打开一个聊天窗口,输入debugx5.qq...
  • 重点说明(实际开发遇见的坑)1.微信网页开发有2个access_token,一个是基本access_token,与应用(与微信公众号)对应;一个是用户access_token,与用户对应。(1)获取基本access_token ...amp;amp;...
  • 开发场景: 在微信客户端打开某个网页可以获取到用户的openId。 获取用户openid步骤如下:参考微信公众平台开发文档 第一步:引导微信公众平台的用户打开如下链接 ...response_t...
  • .net C#微信公众号开发

    2020-06-17 16:32:09
    打开微信公众平台,主页左侧找到 “开发”栏目,选择基本配置,获取AppId,appsecret。 开发者密码需要管理员授权查看。 二、服务器配置 1、主页左侧找到 “开发”栏目,选择基本配置,下半页“服务器配置”模块...
  •  开发环境参考:微信开发(一)--分享接口 点击打开链接 由于是基于weixin-java-tools 封装的java sdk,所以在微信底层处理上我们可以直接调用WxMpService. 一.数据准备: 进入页面前,根据条件查询相应的图片...
  • 一、背景:微信开发其实跟web开发并没有太大的分别,在我们进行微信开发的时候,需要调用微信接口的时候(比如获取地理位置,上传图片,拍照等),肯定是需要在微信上操作的,而这时候我们的项目还没有部署到生产上...
  • WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信网页开发量身设计,可以令用户的使用感知更加统一。在微信网页开发中使用 WeUI,有如下优势: 同微信客户端一致的视觉效果,令所有...
  • 最近需要做一个页面,该页面使用微信浏览器打开,功能如下: 1、用户打开链接之后获取到用户的openId,用于支付、获取后台数据等场景 2、自定义分享链接、标题、图标、描述等 3、隐藏微信页面中的某些菜单项列表 ...
  • 当开发微信wepApp时,可能会有调用到摄像头的需要,如调用微信开发平台的JS-SKD有相关的图片上传的开发文档。 微信JS-SDK 相关资料参考微信官方文档: 微信网页开发:...
  • 现在,我们要实现一个微信网页,通过微信访问网页时,网页会展示微信用户的个人信息。因为涉及到用户的个人信息,所以需要有用户授权才可以。当用户授权后,我们的网页服务器(开发者服务器)会...
  • Chrome浏览器打开微信页面 当我们打开微信浏览器的页面时,会提示这个 下面教大家用Chrome浏览器打开微信页面,以方便调试。 1、微信的UA(User agent:用户代理)。 安卓微信UA:mozilla/5.0(linux;u;...
  • 微信文档微信JS-SDK说明文档JSSDK使用步骤首先确保已经获取了相关权限 步骤一:绑定域名先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者中心”查看对应...
  • 微信开发js限制页面只能在微信浏览器打开 禁止外置浏览器
  • 微信开发之架构设计

    2014-10-30 11:45:32
     本文将讲解微信开发的前期准备,包括微信开发上的一些坑、架构上的设计、接口上需要注意的地方,全部来自自己的开发经验,如有不对,请指正。   微信开发的坑   1、微信授权  微信...
1 2 3 4 5 ... 20
收藏数 22,883
精华内容 9,153