未绑定企业号开发者_微信开发者工具提示未绑定企业号开发者 - CSDN
  • 调试第三方应用时同样也会提示未绑定企业号开发者。 下面将针对如何调试自建应用出现的企业号绑定问题。 1、首先,将自己设置为企业微信的管理员。 2、进入企业微信---我的企业---微工作台---勾选开发者工具 ...

    强调一下:微信开发者工具可以调试企业微信的自建应用,暂时还不支持调试第三方应用。调试第三方应用时同样也会提示未绑定企业号开发者。

    下面将针对如何调试自建应用出现的企业号未绑定问题。

    1、首先,将自己设置为企业微信的管理员。

     2、进入企业微信---我的企业---微工作台---勾选开发者工具 

     然后在微信开发者工具中打开就可以了。

    关于第三方应用目前可以先在手机端企业微信中安装测试应用,然后在手机端进行调试。

     

    展开全文
  • 首先说微信企业号的开发模式分为:编辑模式(普通模式)和开发模式(回调模式),在编辑模式下,只能做简单的自定义菜单和自动回复消息,要想实现其他功能还得开启开发者模式。 一、编辑模式和开发模式对消息的处理...

             首先说微信企业号的开发模式分为:编辑模式(普通模式)和开发模式(回调模式),在编辑模式下,只能做简单的自定义菜单和自动回复消息,要想实现其他功能还得开启开发者模式。

    一、编辑模式和开发模式对消息的处理流程

     1.编辑模式下,所有的业务流程都配置在微信服务器上,由它处理

     

    2.开发模式,消息通过第三方服务器处理,最后经过微信服务器把消息发送给用户

     

         开发模式能处理的消息比编辑模式多,所以要先开启开发模式才能开发更多功能。

    二、开发模式的开启

         在回调模式下,企业不仅可以主动调用企业号接口,还可以接收用户的消息或事件。接收的信息使用XML数据格式、UTF8编码,并以AES方式加密

    1.开启回调模式后要配置参数如下:

     

    其中url是要访问的servlet,token和EncodingAESKey是随机获取的,但要和项目中保持一致。

    2.验证URL的有效性

      当你提交以上信息时,企业号将发送GET请求到填写的URL上,GET请求携带四个参数,企业在获取时需要做urldecode处理,否则会验证不成功。

     

     3.代码

     CoreServlet1类

    public class CoreServlet1 extends HttpServlet {
    	 private static final long serialVersionUID = 4440739483644821986L;
    	 String sToken = "weixinCourse";
    	 String sCorpID = "wxe510946434680dab";
    	 String sEncodingAESKey = "DjlyZxgKiWRESIW2VnV9dSr7HsS7usWDfnwA8Q1ove1";
    		
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    		 WXBizMsgCrypt wxcpt;
     
          try {
    		wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID); 
    		
    		String sVerifyMsgSig = request.getParameter("msg_signature");
    		
    		String sVerifyTimeStamp = request.getParameter("timestamp"); 
    		
    		String sVerifyNonce = request.getParameter("nonce");  
    		
    		String sVerifyEchoStr = request.getParameter("echostr");   
    		String sEchoStr;
    	
    		sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,
    					sVerifyNonce, sVerifyEchoStr);
    		System.out.println("verifyurl echostr: " + sEchoStr);
    		PrintWriter out = response.getWriter();
    		out.print(sEchoStr); 
    		out.close();
    		out = null;
    		
    	} catch (AesException e1) {
    		
    		e1.printStackTrace();
    	}
    		
        }
    }
    
    工具类:

    /**
     * 对公众平台发送给公众账号的消息加解密示例代码.
     * 
     * @copyright Copyright (c) 1998-2014 Tencent Inc.
     */
    
    // ------------------------------------------------------------------------
    
    /**
     * 针对org.apache.commons.codec.binary.Base64,
     * 需要导入架包commons-codec-1.9(或commons-codec-1.8等其他版本)
     * 官方下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
     */
    package com.qq.weixin.mp.aes;
    
    import java.nio.charset.Charset;
    import java.util.Arrays;
    import java.util.Random;
    
    import javax.crypto.Cipher;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    
    import org.apache.commons.codec.binary.Base64;
    
    /**
     * 提供接收和推送给公众平台消息的加解密接口(UTF8编码的字符串).
     * <ol>
     * 	<li>第三方回复加密消息给公众平台</li>
     * 	<li>第三方收到公众平台发送的消息,验证消息的安全性,并对消息进行解密。</li>
     * </ol>
     * 说明:异常java.security.InvalidKeyException:illegal Key Size的解决方案
     * <ol>
     * 	<li>在官方网站下载JCE无限制权限策略文件(JDK7的下载地址:
     *      http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html</li>
     * 	<li>下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt</li>
     * 	<li>如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件</li>
     * 	<li>如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件</li>
     * </ol>
     */
    public class WXBizMsgCrypt {
    	static Charset CHARSET = Charset.forName("utf-8");
    	Base64 base64 = new Base64();
    	byte[] aesKey;
    	String token;
    	String corpId;
    
    	/**
    	 * 构造函数
    	 * @param token 公众平台上,开发者设置的token
    	 * @param encodingAesKey 公众平台上,开发者设置的EncodingAESKey
    	 * @param corpId 企业的corpid
    	 * 
    	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
    	 */
    	public WXBizMsgCrypt(String token, String encodingAesKey, String corpId) throws AesException {
    		if (encodingAesKey.length() != 43) {
    			throw new AesException(AesException.IllegalAesKey);
    		}
    
    		this.token = token;
    		this.corpId = corpId;
    		aesKey = Base64.decodeBase64(encodingAesKey + "=");
    	}
    
    	
    	
    
    	/**
    	 * 对密文进行解密.
    	 * 
    	 * @param text 需要解密的密文
    	 * @return 解密得到的明文
    	 * @throws AesException aes解密失败
    	 */
    	String decrypt(String text) throws AesException {
    		byte[] original;
    		try {
    			// 设置解密模式为AES的CBC模式
    			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
    			SecretKeySpec key_spec = new SecretKeySpec(aesKey, "AES");
    			IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16));
    			cipher.init(Cipher.DECRYPT_MODE, key_spec, iv);
    
    			// 使用BASE64对密文进行解码
    			byte[] encrypted = Base64.decodeBase64(text);
    
    			// 解密
    			original = cipher.doFinal(encrypted);
    		} catch (Exception e) {
    			e.printStackTrace();
    			throw new AesException(AesException.DecryptAESError);
    		}
    
    		String xmlContent, from_corpid;
    		try {
    			// 去除补位字符
    			byte[] bytes = PKCS7Encoder.decode(original);
    
    			// 分离16位随机字符串,网络字节序和corpId
    			byte[] networkOrder = Arrays.copyOfRange(bytes, 16, 20);
    
    			int xmlLength = recoverNetworkBytesOrder(networkOrder);
    
    			xmlContent = new String(Arrays.copyOfRange(bytes, 20, 20 + xmlLength), CHARSET);
    			from_corpid = new String(Arrays.copyOfRange(bytes, 20 + xmlLength, bytes.length),
    					CHARSET);
    		} catch (Exception e) {
    			e.printStackTrace();
    			throw new AesException(AesException.IllegalBuffer);
    		}
    
    		// corpid不相同的情况
    		if (!from_corpid.equals(corpId)) {
    			throw new AesException(AesException.ValidateCorpidError);
    		}
    		return xmlContent;
    
    	}
    
    
    	/**
    	 * 验证URL
    	 * @param msgSignature 签名串,对应URL参数的msg_signature
    	 * @param timeStamp 时间戳,对应URL参数的timestamp
    	 * @param nonce 随机串,对应URL参数的nonce
    	 * @param echoStr 随机串,对应URL参数的echostr
    	 * 
    	 * @return 解密之后的echostr
    	 * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
    	 */
    	public String VerifyURL(String msgSignature, String timeStamp, String nonce, String echoStr)
    			throws AesException {
    		String signature = SHA1.getSHA1(token, timeStamp, nonce, echoStr);
    
    		if (!signature.equals(msgSignature)) {
    			throw new AesException(AesException.ValidateSignatureError);
    		}
    
    		String result = decrypt(echoStr);
    		return result;
    	}
    
    }

    /**
     * 对公众平台发送给公众账号的消息加解密示例代码.
     * 
     * @copyright Copyright (c) 1998-2014 Tencent Inc.
     */
    
    // ------------------------------------------------------------------------
    
    package com.qq.weixin.mp.aes;
    
    import java.security.MessageDigest;
    import java.util.Arrays;
    
    /**
     * SHA1 class
     *
     * 计算公众平台的消息签名接口.
     */
    class SHA1 {
    
    	/**
    	 * 用SHA1算法生成安全签名
    	 * @param token 票据
    	 * @param timestamp 时间戳
    	 * @param nonce 随机字符串
    	 * @param encrypt 密文
    	 * @return 安全签名
    	 * @throws AesException 
    	 */
    	public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws AesException
    			  {
    		try {
    			String[] array = new String[] { token, timestamp, nonce, encrypt };
    			StringBuffer sb = new StringBuffer();
    			// 字符串排序
    			Arrays.sort(array);
    			for (int i = 0; i < 4; i++) {
    				sb.append(array[i]);
    			}
    			String str = sb.toString();
    			// SHA1签名生成
    			MessageDigest md = MessageDigest.getInstance("SHA-1");
    			md.update(str.getBytes());
    			byte[] digest = md.digest();
    
    			StringBuffer hexstr = new StringBuffer();
    			String shaHex = "";
    			for (int i = 0; i < digest.length; i++) {
    				shaHex = Integer.toHexString(digest[i] & 0xFF);
    				if (shaHex.length() < 2) {
    					hexstr.append(0);
    				}
    				hexstr.append(shaHex);
    			}
    			return hexstr.toString();
    		} catch (Exception e) {
    			e.printStackTrace();
    			throw new AesException(AesException.ComputeSignatureError);
    		}
    	}
    }
    

    class PKCS7Encoder {
    	static Charset CHARSET = Charset.forName("utf-8");
    	static int BLOCK_SIZE = 32;
    /**
    	 * 删除解密后明文的补位字符
    	 * 
    	 * @param decrypted 解密后的明文
    	 * @return 删除补位字符后的明文
    	 */
    	static byte[] decode(byte[] decrypted) {
    		int pad = (int) decrypted[decrypted.length - 1];
    		if (pad < 1 || pad > 32) {
    			pad = 0;
    		}
    		return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad);
    	}
    }

    三、总结

        企业通过参数msg_signature对请求进行校验,如果确认此次GET请求来自企业号,那么企业应用对echostr参数解密并原样返回echostr明文(不能加引号),则接入验证生效,回调模式才能开启。开启后一些功能会陆续实现,敬请期待!

     

    展开全文
  • 未绑定企业号开发者

    2020-04-20 19:57:55
    未绑定企业号开发者”问题 一直以来都是通过微信开发者工具调试企业微信页面的,最近因为某些原因也捣鼓起来了企业微信的页面,当时却发现直接在微信开发者工具打开企业页面的时候是无法打开的,提示“未绑定...

    “未绑定企业号开发者”问题

    一直以来都是通过微信开发者工具调试企业微信页面的,最近因为某些原因也捣鼓起来了企业微信的页面,当时却发现直接在微信开发者工具打开企业页面的时候是无法打开的,提示“未绑定企业号开发者”。

    下面是我解决问题的历程:

    我使用到的是利用”OAuth2“获取用户的userid进而进行后面的业务逻辑,在微信开发者工具打开网页地址时,发现是无法直接使用的,提示”未绑定企业号开发者“,弹框的下面还附带了”查看文档“的按钮,起初我还说微信对我们开发者还是比较友好的,居然还能直接附带解决方案,但是我还是太年轻了,点击”查看文档”跳转到网页链接,当时我就懵逼了,打开的居然是微信公众号关于绑定开发者的介绍,看来还是得靠自己。

    度娘了一下,发现一些方法,虽然最终解决的问题,但是由于文档有些重要的地方没有提及,并且有些朋友还在评论中提及到按照步骤进行操作之后并不能解决问题,所以这里也希望把自己遇到的坑分享出来,希望能帮到大家。
    下面这截图是问题的开始,遇到这个提示时,大家不要紧张不要慌,应该3分钟之内就你可以解决了。
    在这里插入图片描述
    1、遇到这个提示的原因就是登录的用户还没有绑定企业微信的开发者,拿我们就去绑定开发者,首先访问企业微信的网址,登录企业微信后台,这里需要注意一下,开发者与企业微信的管理员未必是同一个人,所以如果有遇到这个问题的小伙伴麻烦让企业微信的管理员扫码授权登录企业微信。登录地址:https://work.weixin.qq.com/wework_admin/loginpage_wx
    在这里插入图片描述
    2、接下来这个如果您是企业微信的管理员则不需要操作,直接跳转到下一步,这里需要把需要操作的开发者添加未管理员,进入的路径是”我的企业“->”权限管理“。添加为管理员之后,添加之后您需要使用您的微信进行扫码登录企业微信(很多小伙伴说操作之后无效应该就是因为没有切换登录)。
    在这里插入图片描述
    3、接下来就是打开微信插件,滑到最底下的”开发者工具“勾选上之后就可以了。
    在这里插入图片描述
    在这里插入图片描述
    4、接下来就到可以到微信开发者工具就可以愉快的去撸程序了。完结。

    展开全文
  • 最近在做企业微信开发,碰到一个很蛋疼的问题,企业微信后台怎么设置,在微信开发者工具上始终提示“未绑定企业号开发者”,百度了一圈也没找到解决的答案,最后问企业微信客服才解决,在此再次感谢为我解答问题的小...

      最近在做企业微信开发,碰到一个很蛋疼的问题,企业微信后台怎么设置,在微信开发者工具上始终提示“未绑定企业号开发者”,百度了一圈也没找到解决的答案,最后问企业微信客服才解决,在此再次感谢为我解答问题的小姐姐(哥哥),耐心的为我一步步分析问题,经过一个小时的不懈努力,终于搞定。问题描述以及相关解决方案看图:  

      但是,按照客服说的三条我都做了,没问题啊,郁闷~~~~

      最后客服问我,"对方是否登录管理后台去勾选开发者工具呢", 于是,灵光一闪,对奥,难道是?赶快用另一个微信号登录一看,果然没有勾选,再然后,自己去实验吧。

     

    转载于:https://www.cnblogs.com/learnmo/p/9580318.html

    展开全文
  • 转载自:... 开发者论坛 接口文档 进入官网 微信JS-SDK接口 微信JS-SDK说明文档 目
  • 目录 1 概述 1.1 使用说明 1.1.1 步骤一:引入JS文件 1.1.2 步骤二:通过config接口注入权限验证配置 1.1.3 步骤三:通过ready接口处理成功验证 1.1.4 步骤四:通过error接口处理失败验证 ...
  • 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、...
  • 当前帐号在公众平台绑定,无法调试此授权登录链接。 解决方法:http://www.yayihouse.com/yayishuwu/chapter/1208
  • 转地址:http://www.lvtao.net/ios/564.html 转载于:https://www.cnblogs.com/hanyutong/p/4950025.html
  • 微信公众号开发

    2019-07-22 12:22:59
    x 微信公众号区别 主要有订阅号、服务号、企业号 个人只能申请”订阅号”,我开发的时候是申请”订阅号”,然后使用其中的”公众平台测试帐号” ... 先要有什么?...如果QQ已经绑定了微信了,是申...
  • web开发者工具,就是为帮助开发者更方便、更安全地开发和调试基于微信的网页,我们推出了 web 开发者工具。它是一个桌面应用,通过模拟微信客户端的表现,使得开发者可以使用这个工具方便地在 PC 或者 Mac 上进行...
  • 5.绑定开发者 6.小程序开发与管理 7.常见拒绝情形 一. 准备申请注册所需资料 需要填写注册过公众平台、开放平台、企业号未绑定个人号的邮箱及密码 登录邮箱,查收激活邮件,点击激活链接。 填写主体...
  • 企业号,是微信为企业用户提供的移动应用入口” 一、在首页申请试用 进入首页(Http://qy.weixin.qq.com) 通过首页顶上的“开发者中心”进入开发者中心界面 点击“申请体验”进入申请界面申请试用号。 ...
  • 前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大。这篇文章只是做一个记录,方便自己以后使用的时候看看,...
  • 新书《微信企业号开发揭秘》已出版,全书基于源码与API逐步讲解,采用WeChatEnterprise框架开发     纸质书购买地址: 天猫 京东 当当 亚马逊   WeChatEnterprise框架源码下载、克隆地址:...
  • 微信公共号分类:公众号(个人和企业)、服务号(企业)、企业号(企业) 微信开发原理 微信公众平台开发者,通过接入认证方式,让我们服务器处理来自微信服务器的用户请求,处理结果通过返回微信服务器,由微信...
  • web开发者工具。 有任何疑问或建议请私信我,或者在评论区大家一起探讨。 概述 为帮助开发者更方便、更安全地开发和调试基于微信的网页,我们推出了 web 开发者工具。它是一个桌面应用,通过模拟微信客户端...
  • 1、访问https://work.weixin.qq.com,手机扫描进入,选择绑定的微信企业号(需要是管理员)。 2、 3、 4、 即可 转载于:https://www.cnblogs.com/zhaogaojian/p/9237834.html...
  • 微信企业号 技术解析

    2014-10-11 12:25:51
    摘要: 2014年9月18日,微信正式推出企业号公测,以“连接企业的另一种可能”为口号,使微信连接一切的链条更加完整。下面以我个人的角度,对我所理解的企业号,进行简单介绍: 什么是企业号 1.开放平台 企业号提供包...
  • 微信web开发工具

    2016-10-04 19:11:52
    为了保证开发者身份信息的安全,对于希望调试的公众号,我们要求开发者微信号与之建立绑定关系。具体操作为:公众号登录管理后台,启用开发者中心,在开发者工具——web 开发者工具页面,向开发者微信号发送绑定...
1 2 3 4 5 ... 20
收藏数 596
精华内容 238
关键字:

未绑定企业号开发者