微信企业号第三方应用开发[一]——创建套件

注:文中绿色部分为摘自微信官方文档

第三方应用提供给企业的是一个应用,但是应用必须在套件下创建,所以第一步是要创建套件。

  

注册成为应用提供商,必须输入以下信息:

信息项 要求及说明
企业Logo 应用提供商的企业Logo,小于2M,640*640,背景为白色
企业简称 使用对外宣传的企业简称,能代表企业的名字,2-16个字
企业简介 描述企业所提供的服务,4-120个字
企业官网 应用服务商的企业官网

注册条件:a)拥有一个已经过认证的企业号 b)用系统管理员身份进行申请

摘自http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BA%94%E7%94%A8%E6%8F%90%E4%BE%9B%E5%95%86%E6%B3%A8%E5%86%8C%E5%BA%94%E7%94%A8 

符合以上条件后,登录微信第三方应用官网,选择“服务商登录”

创建应用套件

开发者完成注册之后,即可创建应用套件。应用套件是第三方应用授权的主体,接口的开发都与应用套件息息相关,请开发者仔细阅读下方内容。

基本信息:

信息项 要求及说明
应用套件Logo 应用套件的Logo,小于2M,640*640,在授权页会被用于展示。
应用套件名称 应用套件的名称,2-16个字
介绍网站 介绍该应用套件网站或者页面
应用套件介绍 描述该应用套件所提供的服务,4-120个字
授权方式 使用方式目前有两种:线上自助注册授权使用和服务商辅助授权使用。
服务行业 该应用套件所服务的行业对象,一个套件只能属于一个服务行业。
套件标签 套件提供的服务类型,如OA办公、CRM、HR、ERP等。一个套件只能拥有一个标签。

注意:

1)你应谨慎选择所填写的行业和标签,行业是指可使用该套件企业所属的行业。当应用套件达到一定的活跃度后(授权企业数和日活跃用户数),会自动在企业号第三方官网进行推荐,套件所在的分类将基于所设置的行业和标签。

2)授权方式的作用在于区分应用套件是否可以直接从企业号第三方官网发起授权,线上自助注册授权使用是指该应用套件可以直接从企业号第三方官网发起授权,而不跳转服务商网站,该类型的应用套件还可以支持移动端发起应用套件授权;服务商辅助授权使用是指该应用套件必须跳转服务商网站,从服务商网站发起应用套件的授权,该类型的应用套件不支持移动端发起应用套件授权。

3)你可以创建或者选择其他开发者已创建的标签。你应该谨慎选择套件标签,用户往往会在企业号中通过标签查找相关联的套件。

开发信息:

套件参数内容 说明
发起授权域名 在该域名下发起的授权请求才可被通过,企业点击授权链接时,企业号会检查该域名是否已登记。
授权完成回调域名 在第三方应用授权流程中,授权成功后会回调该域名,返回临时code。你需用此code换取永久授权码,请尽量将此域名与发起授权域名保持一致。
系统事件接收URL 系统将会把此套件的授权变更事件以及ticket参数推送给此URL,ticket说明详见API接口说明。(填写URL时需要正确响应微信验证URL的请求,具体说明请阅读“回调模式”)
Token 可任意填写,用于生成签名,校验回调请求的合法性。后续所有托管的企业产生的回调消息都使用该值来解密。
EncodingAESKey 回调消息加解密参数,是AES密钥的Base64编码,用于解密回调消息内容对应的密文。后续所有托管的企业产生的回调消息都使用该值来解密。
应用套件ID 应用套件的编号,相关的接口调用需要使用,由系统生成,不可更改。
应用套件secret 应用套件的密钥,相关的接口调用需要使用。
白名单IP列表 应用套件调用企业号第三方应用API时的合法IP列表,只有白名单内的IP才能正常调用企业号API,后续IP若有修改,需要及时进行列表更新。

创建完成之后,系统会告知开发者该应用套件的Suiteid和Suitesecret。(详见第三方应用接口说明)

摘自http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BA%94%E7%94%A8%E6%8F%90%E4%BE%9B%E5%95%86%E6%B3%A8%E5%86%8C%E5%BA%94%E7%94%A8

 登陆后界面如下,选择添加应用套件

进入创建套件页面,填写基本资料

点击下一步,填写开发资料

验证URL有效性

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

参数 描述 是否必带
msg_signature 微信加密签名,msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体
timestamp 时间戳
nonce 随机数
echostr 加密的随机字符串,以msg_encrypt格式提供。需要解密并返回echostr明文,解密后有random、msg_len、msg、$CorpID四个字段,其中msg即为echostr明文 首次校验时必带

企业通过参数msg_signature对请求进行校验,如果确认此次GET请求来自企业号,那么企业应该对echostr参数解密并原样返回echostr明文(不能加引号,不能带bom头,不能带换行符),则接入验证生效,回调模式才能开启。

摘自http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F

"系统事件接收URL"响应的代码如下

/**
     * 测试微信企业号第三方应用回调协议
     * @author:leap
     * @MethodName: testWXSaaSCallback
     * @Description:
     * @param req
     * @param res
     * @date:2016-8-9
     */
    @RequestMapping(value="testWXSaaSCallback")
    @ResponseBody
    public void testWXSaaSCallback( HttpServletRequest req, ServletResponse res){
        //常量值
        String CORP_ID = "wx9671de0651dbdxxx";    //CorpId, 企业号的普通管理组中可查看
        String SUITE_ID = "tja2312bedd5086xxx";    //套件ID,在套件信息中查看
        String SUITE_SECRET = "LGVT0BrN2DZ7VMTuIPOsudaWuXOE0iM67yHpIs1ofESS4l-jSC8LN9nOnmilhXXX";
        String SUITE_TOKEN = "ssI2AnbgOo40eb0kOxxx";
        String SUITE_ENCODING_AES_KEY = "Pmqgjzwt4yAEK9N6YZ34RKpy6onJD56r8mhCUFG9xxx";

        //获取参数
        String msgSignature = req.getParameter("msg_signature");
        String timestamp = req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String echostr = req.getParameter("echostr");    //创建套件时验证回调url时传入

        String result = "";
        try {
            if(!Utils.isBlank(echostr)){    //=======验证回调url有效性=======
                WXBizMsgCrypt wxBizMsgCrypt = new WXBizMsgCrypt(SUITE_TOKEN,
                        SUITE_ENCODING_AES_KEY, CORP_ID);//注意是CORP_ID
                result = wxBizMsgCrypt.VerifyURL(msgSignature, timestamp, nonce, echostr);
                System.out.println(result);
                res.getWriter().write(result);    //对echostr参数解密并原样返回echostr明文(不能加引号,不能带bom头,不能带换行符)
            }else{
                //其他操作
                res.getWriter().write("false");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 其中类WXBizMsgCrypt由官方提供

java库(2014年9月24日更新,点击下载)

注意事项:

1.com\qq\weixin\mp\aes目录下是用户需要用到的接入企业微信的接口,其中WXBizMsgCrypt.java文件提供的WXBizMsgCrypt类封装了用户接入企业微信的三个接口,其它的类文件用户用于实现加解密,用户无须关心。sample.java文件提供了接口的使用示例。

2.WXBizMsgCrypt封装了VerifyURL, DecryptMsg, EncryptMsg三个接口,分别用于开发者验证回调url、接收消息的解密以及开发者回复消息的加密过程。使用方法可以参考Sample.java文件。

3.请开发者使用jdk1.6或以上的版本。针对org.apache.commons.codec.binary.Base64,需要导入jar包commons-codec-1.9(或commons-codec-1.8等其他版本),我们有提供,官方下载地址:

http://commons.apache.org/proper/commons-codec/download_codec.cgi

4.异常java.security.InvalidKeyException:illegal Key Size的解决方案:

在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html ):

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安装了JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。

摘自http://qydev.weixin.qq.com/wiki/index.php?title=%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%BA%93%E4%B8%8B%E8%BD%BD%E4%B8%8E%E8%BF%94%E5%9B%9E%E7%A0%81

红字部分是必要操作,不可忽略

[目录]

[上一篇] 微信企业号第三方应用开发[前言]

时间: 2024-11-14 15:26:08

微信企业号第三方应用开发[一]——创建套件的相关文章

微信企业号第三方应用开发[三]——授权应用

创建应用后即可测试授权应用 点击“测试授权”  确认发起授权安装测试 登陆企业号  勾选需要授权的应用  对应用进行可见范围设置  授权成功后等待跳转即可  在企业号管理员确认授权后微信后台会向开发者后台推送消息,开发者后台必须根据“第三方回调协议——授权成功推送auth_code事件”规则响应推送. 使用方式为‘线上自助注册授权使用’的套件,从企业号第三方官网发起授权时,微信服务器会向应用提供商的套件事件接收 URL(创建套件时填写)推送授权成功通知:从应用提供商网站发起的应用套件授权流程,由

微信企业号第三方应用开发[目录]

微信企业号第三方应用开发[前言] 微信企业号第三方应用开发[一]——创建套件

微信企业号第三方应用开发[前言]

关于微信 微信的口号是连接一切,其过程大概为 人与人的连接(基础聊天.朋友圈) 人与组织的连接(订阅号.公众号) 人与企业的连接(企业号) 关于企业号第三方应用  微信推出了企业号第三方应用,它的作用其实是在人与企业连接中继续深化.企业号第三方应用与企业号并不相同,企业号第三方应用是在企业号的基础上扩展的产物.企业号的开发是基于每个企业的企业号进行,相当于为每个企业定制软件:而企业号第三方应用即是把软件做成SaaS,做成一套产品让多个企业直接使用,降低客户成本.企业号的这一发展方向与目前大众软件

微信企业号第三方应用开发[四]——用户登录应用

应用被授权方企业号授权后,授权方企业号用户即可以登录应用.至此,接入企业号第三方应用的开发到了最后一步——获取登录用户信息. 在企业号开发中要获取用户信息,需要获取到用户经OAuth2.0验证时生成的code与企业号的corpid.在企业号第三方应用中也是需要得到这两个参数才能调用之后的一系列接口,特别的是,在企业号开发中corpid是自己的企业号固定的corpid,而企业号第三方应用要获取的则是授权方企业号corpid. 一.获取OAuth2.0的用户身份code OAuth2.0验证接口说明

微信企业号二次开发

1.注册完微信企业号,需要扫描二维码.就出现输入账号和密码的表单了.登陆就会出现下面的页面了.

MVC下微信企业号网页应用开发调用JSSDK接口不成功问题

在MVC下进行企业微信里的网页应用开发,前台页面中为了调用图像接口,使用了JSSDK.按照官方文档进行了正确配置. 现象:WEB开发工具调试一切正常,但从手机企业微信应用进入页面后接口调用无效(这个页面是从一级页面链接过来的),开了调试模式后,显示config:ok.说明配置无误.经过反复检查,终于发现问题所在. 原因:在一级页面(http://xx.xxx.xxx/main/index)中的链接是使用htmlhelper来写的,即@Html.ActionLink("测试接口",&qu

微信公众帐号开发-消息创建时间long型与标准时间的互相转换

/** * */ package com.hd.admin.wxmeet.utils; /** * @author jymcpp * */ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class wxLongutils { public static void main(String[]

微信企业号接入JDK6和JDK7及JDK8加解密失败处理(Java)

使用文章 http://blog.csdn.net/omsvip/article/details/39926493 提供的接入代码,可以根据自己jdk版本编译,如jdk7或者jdk6 ,此时部署后提示报错:java.security.InvalidKeyException:illegal Key Size jdk7: 微信开发者文档提供了下载JCE无限制权限策略文件UnlimitedJCEPolicyJDK7.zip(JDK7的下载地址: http://www.oracle.com/techne

微信企业号开发[一]——创建应用

一.注册企业号 略 二.登录企业号 略 三.创建应用 1.点击新建应用 2.选择应用类型 主页型应用个数有上限,目前是最多创建5个,所以建议尽量选择使用消息型应用.本文以主页型应用作例子. 3.填写应用基本资料,创建应用.URL可以先直接写需要访问的页面,后续文章中将对填写的URL进行改造 4.成功创建后在微信中打开企业号即可看见已创建的应用 [目录] [下一篇]微信企业号开发[二]——获取用户信息 微信企业号开发[一]--创建应用