微信开发用公众号还是测试号_微信公众号开发者工具测试微信公众号,怎么绑定 - CSDN
  • 一、前言 微信公众号开发真的是很麻烦,于是想弄一个方法,可以在vue开发模式下进行调试的...二、微信公众号测试号 1、输入微信公众号测试号,点击红色圈住的地方 2、然后进行扫码登录,进入到下图这一步 ...

    一、前言

    微信公众号开发真的是很麻烦,于是想弄一个方法,可以在vue开发模式下进行调试的。然后就不断踩坑,终于有了这系列的文章。话少说,直接上干货!(怎么注册公众号这里就省略了)

    二、微信公众号测试号

    1、输入微信公众号测试号,点击红色圈住的地方

    2、然后进行扫码登录,进入到下图这一步

                                                                                                     图2-1-1

                                                                                           图2-1-2

    我是用node开发的,所以大概的思路和关键代码如下图:

                                                                                               图2-2

                                                                                                   图2-3

    弄好之后,直接点击下图提交按钮

    如果显示配置成功,则代表已经配置成功,如果页面上部弹出配置失败,则代表还是有问题,可以看一下签名算法是否正确

     

     

    最后附上相关代码,然后第二篇我们将讲解如何获取用户的个人信息(包括微信头像,微信昵称等)

    /* 这个token要和上图配置测试号的token一样 */
    const token = '123456';
    
    /* 检验token和自己设置的token所生成的签名是否相等 */
    
    /**
     * @description 测试是否连的通微信服务器
     * 这个是填写自己的后台服务器某个接口的,目的是测试微信服务器是否能接收到自己的服务器的信息。
     * 原理是:微信服务器会访问这个接口,并且传过来四个参数:nonce,timestamp,signature还有echostr到你的服务器,
     * 然后你的服务器要根据自己设置的token,nonce,timestamp用微信规定的sha1算法得到签名,然后与微信服务器
     * 传回来的signature对比,如果相等的话,就返回echostr即可,这样子就完成了公众号测试号的联通
     * @author lvzhiyuan
     * @date 2020/3/6
     */
    router.get('/checkToken', async (req, res, next) => {
      try {
        const query = url.parse(req.url).query;
        const params = qs.parse(query);
        if (!checkSignature(params, token)) {
          res.end('signature fail');
        }
        if (req.method === "GET") {
          res.end(params.echostr);
        }
      } catch (e) {
        console.log(`routes/users.js-user error: ${e}`);
      }
    });

     

    /**
     * @description sha1签名算法
     * @author lvzhiyuan
     * @date 2020/5/6
     */
    function checkSignature (params, token) {
        var key = [token, params.timestamp, params.nonce].sort().join('');
        //将token (自己设置的) 、timestamp(微信传过来的时间戳)、nonce(微信传过来的随机数)三个参数进行字典排序
        var sha1=require('crypto').createHash('sha1');
        //将上面三个字符串拼接成一个字符串再进行sha1加密
        sha1.update(key);
        return sha1.digest('hex') === params.signature;
    }

     

    展开全文
  • 原文链接:https://blog.csdn.net/qq_37936542/article/details/78337701一:微信公众号的类型有哪些?普通服务、认证服务、普通订阅、认证订阅,其之间主要区别在于权限不同。二:准备服务器微信开发时项目...

    原文链接:https://blog.csdn.net/qq_37936542/article/details/78337701

    一:微信公众号的类型有哪些?

    普通服务号、认证服务号、普通订阅号、认证订阅号,其之间主要区别在于权限不同。


    二:准备服务器

    微信开发时项目路径必须在公网上可以访问,且必须是80端口,因此需要准备服务器或者是外网映射工具。

    推荐一下方式

    (一)云主机

    (二)BAE(百度云开发)、SAE(新浪云)

    (三)免费的外网映射工具 ngrok、natapp


    ngrok操作步骤参考我的博客  外网映射工具之ngrok



    三:准备微信测试号

    微信测试号的权限比没有认证的普通号权限要大一点,如果仅仅是测试的话,推荐使用测试号。

    网址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login



    四:新建web项目,完成微信认证

    使用ngrok将127.0.0.1:80映射成外网地址,用外网地址访问自己的web项目是否可以成功访问。


    微信服务器第一次会发送GET请求到指定的URL,其中有四个参数

    signature:微信加密签名,结合了开发者填写的token参数和请求中的timestamp、nonce参数加密生成。

    timestamp:时间戳

    nonce:随机数

    echostr:随机字符串


    signature加密流程:

    1.将token、timestamp和nonce进行字典排序

    2.将三个参数拼接成一个参数进行sha1加密

    3.将加密后的字符串和signature进行对比


    后台通过对signature验证来检验消息是否来自微信,确认则原样返回echostr,接入成功,否则接入失败。


    封装加密工具类:

    1. import java.security.MessageDigest;  
    2. import java.security.NoSuchAlgorithmException;  
    3. import java.util.Arrays;  
    4.   
    5.   
    6. public class StringUtils {  
    7.   
    8.   
    9. // 与微信公众号配置的一致  
    10. private static String token = "intmote2017";  
    11.   
    12.   
    13. /** 
    14. * 方法名:验证签名 
    15.  
    16. * @param signature 
    17. * @param timestamp 
    18. * @param nonce 
    19. * @return 
    20. * @throws 
    21. */  
    22. public static boolean checkSignature(String signature, String timestamp,  
    23. String nonce) {  
    24. // 1.将token、timestamp、nonce三个参数进行字典序排序  
    25. String[] arr = new String[] { token, timestamp, nonce };  
    26. Arrays.sort(arr);  
    27.   
    28.   
    29. // 2. 将三个参数字符串拼接成一个字符串进行sha1加密  
    30. StringBuilder content = new StringBuilder();  
    31. for (int i = 0; i < arr.length; i++) {  
    32. content.append(arr[i]);  
    33. }  
    34. MessageDigest md = null;  
    35. String tmpStr = null;  
    36. try {  
    37. md = MessageDigest.getInstance("SHA-1");  
    38. // 将三个参数字符串拼接成一个字符串进行sha1加密  
    39. byte[] digest = md.digest(content.toString().getBytes());  
    40. tmpStr = byteToStr(digest);  
    41. catch (NoSuchAlgorithmException e) {  
    42. e.printStackTrace();  
    43. }  
    44.   
    45.   
    46. content = null;  
    47. // 3.将sha1加密后的字符串可与signature对比,标识该请求来源于微信  
    48. return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;  
    49. }  
    50.   
    51.   
    52. /** 
    53. * 方法名:将字节数组转换为十六进制字符串 
    54.  
    55. * @param byteArray 
    56. * @return 
    57. * @throws 
    58. */  
    59. private static String byteToStr(byte[] byteArray) {  
    60. String strDigest = "";  
    61. for (int i = 0; i < byteArray.length; i++) {  
    62. strDigest += byteToHexStr(byteArray[i]);  
    63. }  
    64. return strDigest;  
    65. }  
    66.   
    67.   
    68. /** 
    69. * 方法名: 将字节转换为十六进制字符串 
    70.  
    71. * @param mByte 
    72. * @return 
    73. * @throws 
    74. */  
    75. private static String byteToHexStr(byte mByte) {  
    76. char[] Digit = { '0''1''2''3''4''5''6''7''8''9''A',  
    77. 'B''C''D''E''F' };  
    78. char[] tempArr = new char[2];  
    79. tempArr[0] = Digit[(mByte >>> 4) & 0X0F];  
    80. tempArr[1] = Digit[mByte & 0X0F];  
    81. String s = new String(tempArr);  
    82. return s;  
    83. }  
    84.   
    85.   
    86. }  


    编写CoreController来接收微信请求


    1. @Controller  
    2. public class CoreController {  
    3.   
    4. @RequestMapping(value="handle",method=RequestMethod.GET)  
    5. public void linkHandle(HttpServletRequest request,HttpServletResponse response) throws IOException{  
    6. // 微信加密签名  
    7.         String signature = request.getParameter("signature");  
    8.         // 时间戳  
    9.         String timestamp = request.getParameter("timestamp");  
    10.         // 随机数  
    11.         String nonce = request.getParameter("nonce");  
    12.         // 随机字符串  
    13.         String echostr = request.getParameter("echostr");  
    14.           
    15.         //获取输出流  
    16.         PrintWriter out = response.getWriter();  
    17.           
    18.         //如果验证消息是来自微信,返回echostr  
    19.         boolean check = StringUtils.checkSignature(signature, timestamp, nonce);  
    20.         if(check){  
    21.         out.print(echostr);;  
    22.         }  
    23.   
    24.         out.close();  
    25.         out = null;  
    26. }  
    27.   
    28. /** 
    29. * 消息的处理和响应 
    30. * @param request 
    31. * @param response 
    32. * @throws Exception  
    33. */  
    34. @RequestMapping(value="handle",method=RequestMethod.POST)  
    35. public void messageHandle(HttpServletRequest request,HttpServletResponse response) throws Exception{  
    36.     //将请求、响应的编码设置为utf-8  
    37. request.setCharacterEncoding("UTF-8");  
    38. response.setCharacterEncoding("UTF-8");  
    39.   
    40. //调用核心业务逻辑  
    41. //String respXml = CoreService.processRequest(request);  
    42.   
    43. }  
    44. }  


    五:修改接口配置信息


    将映射后的handle方法访问路径配置到URL中,token要和StringUtils中的token保持一致。

    点击提交,不出意外,提示配置成功


    注意:如果直接在浏览器上访问配置的路径会直接报500的错误,因为没有参数!!!




    六:微信的业务逻辑,比如回复消息和自定义菜单等,都在post请求,因此在handler的post方法中完成

    文末福利:

    福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:jianshu.com/p/e8197d4d9

    福利二:微信小程序入门与实战全套详细视频教程。


    【领取方法】

    关注 【编程微刊】微信公众号:

    回复【小程序demo】一键领取130个微信小程序源码demo资源。

    回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。





    原文作者:祈澈姑娘
    原文链接:jianshu.com/u/05f416aef
    创作不易,转载请告知

    90后前端妹子,爱编程,爱运营,爱折腾。
    坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。



    展开全文
  • 通过测试号来实现获取用户的基本信息需要在测试号管理页面做一些简单的配置。下面两个红色标记的地方都不用配置。 版权声明:本文为博主原创文章,未经博主允许不得转载。 原文地址: ...

    通过测试号来实现获取用户的基本信息需要在测试号管理页面做一些简单的配置。下面两个红色标记的地方都不用配置。

     

     

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    原文地址:

    https://www.cnblogs.com/poterliu/p/9431669.html

     

    主要配置的地方在 体验接口权限表 中 网页账号 的位置,需要将测试号页面往下拉,然后点击后面的 修改。

     弹出修改 授权回调页面域名 的弹窗,注意:这里的域名(也可以是ip+端口号)需要和代码中的授权链接中的redirect_uri根域名一致。

    并且授权回调页面域名 不需要填写http或https。

    微信授权链接:

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    这里的域名可以随便定义,可以定义成自己喜欢的任意域名。

    我这里填写的域名并不是备案过的域名,而是通过在本地机器搭建一个nginx服务器,通过反向代理的方法来访问对应的本机项目。

    比如说本地的项目为bbc,部署在端口号为9000的tomcat中,那么我需要先在hosts文件中将域名www.meditest.cn映射到127.0.0.1,然后修改nginx服务器的配置文件,将域名为www.meditest.cn、端口号为80的请求代理成ip为127.0.0.1、端口号为9000的服务。大致过程如下图。

    hosts文件

    127.0.0.1 www.meditest.cn

    nginx.conf文件中追加

    server {
        listen       80;
        server_name  www.meditest.cn;
    
        #charset koi8-r;
    
        #access_log  logs/www.meditest.cn.access.log  main;
        #error_log logs/www.meditest.cn.error.log ;
    
        ## send request back to apache ##
        location / {
        proxy_pass http://127.0.0.1:9000;
     
        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
       }
    }

    到这里基本上就完成了测试号基本功能的配置。

    =========这里是分隔线==========

    2018/10/23补充

    如果把授权回调页面域名设置为公网url,这里拿 natapp 映射公网的url为例,配置的url不需要加http,加了之后微信在回调时会认为url非法,特别说明一下。

     

     

    全文完

    :)

     

    转载于:https://www.cnblogs.com/poterliu/p/9431669.html

    展开全文
  • 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试号,通过手机微信扫描二维码即可获得测试号测试号进入步骤如下: 打开微信公众平台主页 微信公众平台 点击...

    由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级接口的权限需要微信认证后才可以获取。
    所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试号,通过手机微信扫描二维码即可获得测试号。

    测试号进入步骤如下:

    打开微信公众平台主页

    微信公众平台
    开发文档

    点击这进入开发文档

    开发文档

    进来之后是这样的

    开发文档首页

    点开左边开始开发,点下面的”测试号申请“

    测试好申请

    然后点击下面的地方

    测试号申请入口

    打开之后是这样

    测试号申请首页

    然后点击登录,用自己的微信扫码登录就可以了

    扫码

    展开全文
  • 微信公众号开发教程(一) 验证接入

    万次阅读 多人点赞 2018-06-22 14:22:35
    微信公众号开发教程(一)验证接入本篇文章主要介绍了微信公众号开发接入详细流程,希望对刚接触公众号开发的同学有所帮助,有兴趣的同学可多多关注叩丁狼公众号,后续会更新不同的公众号小案例。公众号的分类我们平常...
  • 微信公众号测试号申请及访问

    万次阅读 2016-09-14 13:20:36
    第一次接触微信公众号开发,文档看的云里雾里,最终在同事的协作下完成
  • 微信公众号开发测试帐号

    万次阅读 2018-01-10 10:33:01
    扫描关注后登录 ...填写JS接口安全域名 ,设置JS接口安全域后,通过关注该测试号,开发者即可在该域名下调用微信开放的JS接口,请阅读微信JSSDK开发文档。 注意:不知道啥原因,自己的帐号申请测试
  • 综合笔者多年的微信公众号以及微信产品开发经验,本篇内容把微信公众号测试账户的接口配置过程分享给广大开发者朋友,开发语言是Java,采用目前流行的springmvc框架开发开发前必读以及准备工作: 1、微信公众...
  • 要做微信公众号开发,两样东西不可少,那就是要有一个用来测试公众号,还有一个用来调式代码的开发环境。 测试公众号 微信公众号有订阅、服务、企业号,在注册的时候看到这样的信息,只有订阅可以个人申请...
  • 由于微信公众号开发需要一个公众号来帮助我们进行测试,而注册公众号有太过麻烦,且功能过于简单,还好微信提供了供开发人员使用测试号微信测试号登陆连接  用微信扫一扫即可登陆 登陆后页面为 URL就是你的...
  • 微信公众号系列之测试号使用

    万次阅读 2019-11-10 21:31:12
    微信公众平台认证之前,我们可以先申请一个测试公众号来进行测试,这对开发人员来说还是有很大好处的! 微信公众平台提供了测试账号,在公众账号没有审核之前,也是可以进行开发的。进入后台->开发者工具-...
  •   测试公众号 微信公众号有订阅、服务、...这里所说的微信公众号开发指的是订阅和服务。   另外,未认证的个人订阅有一些接口是没有权限的,并且目前个人订阅已不支持微信认证,也就是说个人订...
  • 如何设置微信公众号测试号的菜单

    万次阅读 多人点赞 2018-09-03 14:44:57
    由于工作需要需要设置公众号测试号的菜单,没想到查了半天,尽然发现这个菜单栏要...2、进入页面可以看到测试号的相关信息,如果要使用的话,自己配置好哦,小编的不能使用,所有都没有配置 3、体验接口权限...
  • 微信公众号支付测试方法

    万次阅读 2017-11-07 14:47:24
    一般情况下,微信公众号的相关功能的测试都是可以在测试号上完成的。但是微信公众号支付却不在测试号测试范围之内。 微信不允许在测试号进行公众号支付测试,所以导致了我们项目对支付进行了改动之后,导致无法在...
  • 微信公众号开发基本流程

    万次阅读 多人点赞 2019-04-26 09:40:21
    过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。 微信公众平台官网:https://mp.weixin.qq.com 文章目录一、注册公众号二、了解公众号管理页面三、必备...
  • 微信公众号的调试与测试

    万次阅读 2016-10-25 10:57:32
    作者:杨广辉 一、微信公众号简介 1、微信...微信公众号主要面向名人、政府、媒体、企业等机构推出的合作推广业务。在这里可以通过微信渠道将品牌推广给上亿的微信用户,减少宣传成本,提高品牌知名度,打造更具影响力
  • 微信公众号之开发者工具

    万次阅读 2020-04-06 16:49:32
    这次的项目主要是关于微信公众号的一个开发,本人这次分配的模块是后台微信公众号的支付和退款,第一次接触微信公众的项目刚开始一脸懵逼,开发过程中遇到各种坑,所以想自己写一篇详细的关于微信公众号开发,希望...
  • 微信公众号主要有以下几个步骤 微信公众号的通讯机制 微信公众号简介 1.注册微信公众号 2.注册测试公众号 3.搭建微信本地调试环境 1)下载客户端natapp: 2)安装natapp: 4.微信公众号接入(校验签名) 第1步中...
  • 微信推出了测试号,交给大家使用,开通的步骤是: 1.在微信平台页面,在服务中,点击开发者文档 2.在开发者文档目录中,在“开始开发”中找到 “接口测试号申请”,并点击“进入微信公众号账号测试号申请系统...
  • 这里写自定义目录标题微信公众号微信公众号测试账号申请测试账号配置微信公众号测试账号接口配置信息JS接口安全域名,模板消息接口网页授权获取用户基本信息微信小程序微信...使用微信扫码登录下就会分配给你一个测试...
1 2 3 4 5 ... 20
收藏数 42,750
精华内容 17,100
关键字:

微信开发用公众号还是测试号