zoukankan      html  css  js  c++  java
  • 微信公众平台开发详细步骤与java代码

    1、微信公众平台设置

    首先在https://mp.weixin.qq.com/注册一个公众平台账号(服务号、订阅号、企业号的区别

    微信公众平台地址:https://mp.weixin.qq.com 

    登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入

    进入服务器配置填写框。

    点击“修改配置”按钮

    这里url需要填以下申请好的地址,tocken需要填写代码中指定好的。

    2、申请服务器资源

    创建新浪云计算应用

    申请账号

    我们使用SAE新浪云计算平台作为服务器资源,
    申请地址为:

    http://www.sinacloud.com

    直接点击上述网址,可以看到右上角微博登录的链接。

    创建新应用 

    回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 

    进入SAE应用列表

    应用创建成功。并自动跳转到应用列表中,上传代码包就好了。

    3、核心代码(完整代码下载)

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.Arrays;

    /**
    * Created by Gensis on 2016/8/10.
    */
    public class SignUtil {
    private static String token = "weixinlogin";

    public static boolean checkSignature(String signature, String timestamp, String nonce) {

    String[] arr = new String[]{token, timestamp, nonce};
    // 将 token, timestamp, nonce 三个参数进行字典排序
    Arrays.sort(arr);
    StringBuilder content = new StringBuilder();
    for(int i = 0; i < arr.length; i++){
    content.append(arr[i]);
    }
    MessageDigest md = null;
    String tmpStr = null;

    try {
    md = MessageDigest.getInstance("SHA-1");
    // 将三个参数字符串拼接成一个字符串进行 shal 加密
    byte[] digest = md.digest(content.toString().getBytes());
    tmpStr = byteToStr(digest);
    } catch (NoSuchAlgorithmException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    content = null;
    // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
    return tmpStr != null ? tmpStr.equals(signature.toUpperCase()): false;
    }

    /**
    * 将字节数组转换为十六进制字符串
    * @param digest
    * @return
    */
    private static String byteToStr(byte[] digest) {
    // TODO Auto-generated method stub
    String strDigest = "";
    for(int i = 0; i < digest.length; i++){
    strDigest += byteToHexStr(digest[i]);
    }
    return strDigest;
    }

    /**
    * 将字节转换为十六进制字符串
    * @param b
    * @return
    */
    private static String byteToHexStr(byte b) {
    // TODO Auto-generated method stub
    char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    char[] tempArr = new char[2];
    tempArr[0] = Digit[(b >>> 4) & 0X0F];
    tempArr[1] = Digit[b & 0X0F];

    String s = new String(tempArr);
    return s;
    }
    }    

    作者:Genesisx

    出处:Genesisx的博客--http://www.cnblogs.com/Genesisx

    您的支持是对博主最大的鼓励,感谢您的认真阅读。

    本文版权归作者和博客园共有,欢迎转载。

    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    vs2017 项目调试浏览器网页闪退Bug
    “WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0,Culture=neutral....."的引用
    SQL Server判断日期是否为周六 周日
    获取各国的日期时间
    .net Api项目初步搭建并移除XML格式
    鼠标滚轮事件
    js中if表达式判断规则
    原生轮播图
    C# uri
    SqlServer 备份还原教程
  • 原文地址:https://www.cnblogs.com/Genesisx/p/5768959.html
Copyright © 2011-2022 走看看