对接企业微信上架第三方应用_JAVA

一.创建应用

登录服务商平台->应用管理->应用开发->网页应用->创建应用

具体地址https://open.work.weixin.qq.com/wwopen/developer#/sass/apps/list

 

1.配置基础信息

3.配置开发信息

注:除了圈红线的url,其他的都能从旁边的详细解释看的懂。当然这两个url可以创建完成之后再进行更改调试。

点击创建完成。

 

二.编辑回调配置

  • 这里需要我们正确的响应微信服务调用,微信会通过下面我们配置的两个url进行传参调用,我们需要根据TOKEN、ENCODING_AES_KEY、CORP_ID等参数(CORP_ID可以在服务商信息找到)生成加、解密的接口的实例,再将从微信发起的请求中获取对应的参数,就可以解析出相应的信息。

微信开发官方指南https://work.weixin.qq.com/api/doc/90001/90143/91116

  •  编写接口响应回调

        入参如下图所示

需要引用到的jar下载地址

https://work.weixin.qq.com/api/doc/90001/90145/90446#java库

 

实现代码参考:

@ResponseBody
@RequestMapping("wx/callback")
    public String callback(HttpServletRequest request, HttpServletResponse response) {

        String resData = "";
        try {
            boolean getFlag = GET.equals(request.getMethod().toLowerCase());
            String signature = request.getParameter(MSG_SIGNATURE);
            String timestamp = request.getParameter(TIMESTAMP);
            String nonce = request.getParameter(NONCE);
            String sVerifyEchoStr = request.getParameter(ECHOSTR);

            //数据回调URL
            if (getFlag) {
                resData = this.verifyUrl(signature, timestamp, nonce, sVerifyEchoStr);
                return resData;
}


private String verifyUrl(String signature, String timestamp, String nonce, String sVerifyEchoStr) throws Exception {
        WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(TOKEN, ENCODING_AES_KEY, CORP_ID);
        logger.info("------开始进行数据回调URL--------");
        logger.info(String.format("msg_signature=%s&timestamp=%s&nonce=%s&echostr=%s",
                signature, timestamp, nonce, sVerifyEchoStr));
        //解密
        String resData = wxCpt.VerifyURL(signature, timestamp,
                nonce, sVerifyEchoStr);
        logger.info("-------数据回调URL结束------------返回的字符串: " + resData);
        return resData;
    }

 

点击申请校验会出现正确响应该次请求的日志

 

 

注:

1.如出现异常java.security.InvalidKeyException:illegal Key Size

2.配置指令回调url、数据回调url这两个是一个请求。

(这里保留疑问,因为看官方文档我的理解是指令回调url对应POST请求接口,但是在这里申请验证时候接收到的请求参数和数据回调url是一样的,包括请求方式,返回值)

 

三.安装测试

点击安装测试->添加测试企业

这里会提示必须响应并处理“ 授权成功的通知”的回调消息

 

四.设置授权

①官方文档https://work.weixin.qq.com/api/doc/90001/90143/90600

 

  • 代码实现

整体逻辑如下:

1.接收回调接口推送suite_ticket并进行存储及更新(每十分钟推送一次)

此次调用的接口还是/wx/callback,请求方式为POST,请求包体xml参数需要从body中获取,再解析xml可以判断是推送suite_ticket事件,再获取SuiteTicket标签中的值,解析成功必须返回success字符串,其他均为失败。

 

2.调用获取第三方应用凭证接口

通过http请求调用,suite_id,suite_secret在应用管理->应用详情获取

调用成功返回suite_access_token,这个值需要进行缓存更新

3.调用预授权码接口

成功返回预授权码

 

4.调用设置授权配置接口

获取结果,成功必须返回success字符串,其他均为失败。

 

五.扫码安装

 可以设置哪些人可以使用,点击同意就会调用上述请求。然后在工作台就能打开该应用,会跳转至之前配置的首页。

 

注:出现cropid校验失败时,要把生成加解密实例的入参cropid换成suitid

 

最后上架到第三方应用时需要一些条件的;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值