微信小程序分析接入--接口签名请求验证(JAVA版)

目录

  • 前言
  • 微信小程序数据接入
    • 官方签名
    • Java版本工具类

前言

公司开发了几款小程序,为了方便查看所有小程序实时访客数据,直接调用官方提供查询接口。
调用接口的时候,需要手动获取签名,下面就是总结的流程。

  1. 腾讯移动数据网址: https://mta.qq.com/
  2. 微信小程序数据api文档: https://mta.qq.com/docs/wechat_mini_program_api.html

微信小程序数据接入

官方签名

微信小程序分析接入--接口签名请求验证(JAVA版)_第1张图片

Java版本工具类

注意,此处时间戳timestamp单位为秒。

  1. 方法
/** 
   * @Author luohongquan 
   * @Description 获取微信小程序分析接入接口签名:  https://mta.qq.com/docs/wechat_mini_program_api.html
   * @Date 15:12 2019/12/20
   * @Param [appId, secretKey, timestamp, startTime, endTime] 
   * @return java.lang.String 
   */ 
  public static String getWxAppDataSign(String appId, String secretKey, String timestamp, String startTime, String endTime) {
     
    long a = Calendar.getInstance().getTimeInMillis();
    String signStr = String.format(TencentMobileConstant.SIGN_TEMPLATE, secretKey, appId, endTime, startTime, timestamp);
    String sign = "";
    try {
     
      MessageDigest md = MessageDigest.getInstance("MD5");
      md.update(signStr.getBytes());
      byte[] resultByteArray = md.digest();
      sign = new BigInteger(1, resultByteArray).toString(16);
    } catch (Exception e) {
     
      e.printStackTrace();
    }
    return sign;
  }
  1. 测试
  public static void main(String[] args) {
     
    String appId = "xxxx"; // 你的小程序appId
    String secretKey = "xxxxxxxxxxxxxxxxxxxxx"; // 你的小程序secretKey
    long a = Calendar.getInstance().getTimeInMillis();
    String timestamp = String.valueOf(a/1000);	// 秒
    String startTime = "2019-12-20";
    String endTime = "2019-12-20";
    String sign = getWxAppDataSign(appId, secretKey, timestamp, startTime,endTime);
  }

获取签名后,访问get请求https://openapi.mta.qq.com/wx/v1/analytics/period?start_time=2019-12-20&end_time=2019-12-20×tamp=1576808602&app_id=xxxx&sign=3a26dd3d76bcb12d2a55fe253995exxx,即可获取数据。

你可能感兴趣的:(微信小程序,小程序,接口)