论坛首页 Java企业应用论坛

BAE(Baidu App Engine)接入微信-JAVA版-附源码

浏览 8347 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-06-25   最后修改:2013-06-27

BAE接入微信-JAVA版-附源码

 

介入微信主要是3个步骤

 

加密/校验流程:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

 

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        String signature = req.getParameter("signature");
        String timestamp = req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String echostring = req.getParameter("echostr");
        String token = "YourToken"; // Note: 改成你自己的Token
        if (signature == null || timestamp == null || nonce == null
                || echostring == null)
        {
            write(resp, "Error parameter count.");
            return;
        }
        // 1. 将token、timestamp、nonce三个参数进行字典序排序
        String[] strArr = new String[] { token, timestamp, nonce };
        java.util.Arrays.sort(strArr);
        // 2. 将三个参数字符串拼接成一个字符串进行sha1加密
        StringBuffer sb = new StringBuffer();
        for (String str : strArr)
        {
            sb.append(str);
        }
        MessageDigest mdSha1 = null;
        try
        {
            mdSha1 = MessageDigest.getInstance("SHA-1");
        }
        catch (NoSuchAlgorithmException e)
        {
            e.printStackTrace();
        }
        mdSha1.update(sb.toString().getBytes());
        byte[] codedBytes = mdSha1.digest();
        String codedString = new BigInteger(1, codedBytes).toString(16);
        // 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
        if (codedString.equals(signature))
        {
            write(resp, echostring);
            return;
        }
        else
        {
            write(resp, "Check error.");
            return;
        }
    }

 

 

   发表时间:2013-06-27  
zhoujianboy 写道

BAE接入微信-JAVA版-附源码

 

介入微信主要是3个步骤

 

加密/校验流程:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

 

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        String signature = req.getParameter("signature");
        String timestamp = req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String echostring = req.getParameter("echostr");
        String token = "YourToken"; // Note: 改成你自己的Token
        if (signature == null || timestamp == null || nonce == null
                || echostring == null)
        {
            write(resp, "Error parameter count.");
            return;
        }
        // 1. 将token、timestamp、nonce三个参数进行字典序排序
        String[] strArr = new String[] { token, timestamp, nonce };
        java.util.Arrays.sort(strArr);
        // 2. 将三个参数字符串拼接成一个字符串进行sha1加密
        StringBuffer sb = new StringBuffer();
        for (String str : strArr)
        {
            sb.append(str);
        }
        MessageDigest mdSha1 = null;
        try
        {
            mdSha1 = MessageDigest.getInstance("SHA-1");
        }
        catch (NoSuchAlgorithmException e)
        {
            e.printStackTrace();
        }
        mdSha1.update(sb.toString().getBytes());
        byte[] codedBytes = mdSha1.digest();
        String codedString = new BigInteger(1, codedBytes).toString(16);
        // 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
        if (codedString.equals(signature))
        {
            write(resp, echostring);
            return;
        }
        else
        {
            write(resp, "Check error.");
            return;
        }
    }

 

 


BAE(Baidu App Engine) 比 SAE(Sina App Engine)简单而且速度快, 免费支持JAVA web应用。
0 请登录后投票
   发表时间:2013-07-02  
BAE不是收费了吗?
0 请登录后投票
   发表时间:2013-07-03  
hellostory 写道
BAE不是收费了吗?


有免费的配额,如果你的网站超过配额,就会收费。 如果你的网站超过配额,那估计也的网站也开始赚钱了。
0 请登录后投票
   发表时间:2013-07-03  
zhoujianboy 写道
hellostory 写道
BAE不是收费了吗?


有免费的配额,如果你的网站超过配额,就会收费。 如果你的网站超过配额,那估计也的网站也开始赚钱了。


谢谢!那现在可以上传Web网站吗?前段时间好像不行!


1 请登录后投票
   发表时间:2013-07-05  
hellostory 写道
zhoujianboy 写道
hellostory 写道
BAE不是收费了吗?


有免费的配额,如果你的网站超过配额,就会收费。 如果你的网站超过配额,那估计也的网站也开始赚钱了。


谢谢!那现在可以上传Web网站吗?前段时间好像不行!



可以上传! 我已经部署过了。 参考:http://www.weixinhu.net/
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics