微信公众号-接口配置信息url和tokken

一、接入指南
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
接入概述
接入微信公众平台开发,开发者需要按照如下步骤完成:

1、填写服务器配置

2、验证服务器地址的有效性

3、依据接口文档实现业务逻辑

下面详细介绍这3个步骤。(如你已有小程序,并且已开通小程序云开发,也可以使用 公众号环境共享 能力,在公众号中使用云开发。)

第一步:填写服务器配置
登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档 。

在这里插入图片描述
第二步:验证消息的确来自微信服务器
开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数 描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

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

检验signature的PHP示例代码:

private function checkSignature()
{
   
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
   
        return true;
    }else{
   
        return false;
    }
}


创建目录:
在这里插入图片描述
WeChatUtil

package com.camel.ssm.util;

public class WeChatUtil {
   
    public  static final String TOKKN="xxxxx";
}

SecurityUtil

package com.camel.ssm.util
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是使用 Java 代码获取用户手机号的示例: 首先,你需要获取 access_token。可以参考微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 然后,你可以使用以下代码来获取用户手机号: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class GetPhoneNumber { public static void main(String[] args) { String accessToken = "ACCESS_TOKEN"; // 替换成你自己的 access_token String encryptedData = "ENCRYPTED_DATA"; // 用户数据的加密数据,需要前端传递过来 String iv = "IV"; // 加密算法的初始向量,需要前端传递过来 String sessionKey = "SESSION_KEY"; // 用户数据的会话密钥,需要前端传递过来 try { String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken; String data = "encrypted_data=" + URLEncoder.encode(encryptedData, "UTF-8") + "&iv=" + URLEncoder.encode(iv, "UTF-8") + "&session_key=" + URLEncoder.encode(sessionKey, "UTF-8"); HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.getOutputStream().write(data.getBytes("UTF-8")); InputStream inputStream = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); inputStream.close(); conn.disconnect(); // 解析响应结果 System.out.println(response.toString()); } catch (IOException e) { e.printStackTrace(); } } } ``` 注意:这里使用了 POST 方法请求 API,需要将请求数据写入输出流中。同时,需要将请求参数中的加密数据、初始向量、会话密钥替换成前端传递过来的真实数据。 另外,由于获取用户手机号的 API 需要企业微信授权,需要在后台配置相应的权限。具体请参考微信官方文档:https://work.weixin.qq.com/api/doc/90000/90135/90930

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值