No se requiere una IP pública y se puede crear fácilmente un entorno de depuración local para el desarrollo de cuentas públicas de WeChat mediante la penetración de la intranet.

Prefacio

En el desarrollo de cuentas públicas de WeChat, WeChat requiere que los desarrolladores tengan sus propios recursos de servidor para responder a la verificación del token enviada por WeChat. Solo se puede acceder a este servidor a través de nombres de dominio y no se puede acceder mediante direcciones IP. Si compra un servidor y luego compre un nombre de dominio, será un gasto relativamente grande. Si puede exponer el servicio local y luego usar el nombre de dominio para acceder a él, no solo simplificará la configuración, sino que también reducirá el gasto y logrará un rápido desarrollo.

Afortunadamente, Cpolar se encarga de esto por usted. Inicie Cpolar y pegue la URL del túnel en el campo URL del servidor de acoplamiento de la cuenta oficial de WeChat, ¡listo!

1. Configurar el servidor local

Cree un servicio local. Aquí tomamos el servicio Java como ejemplo. Configuración del entorno:

  • JDK1.8
  • experto
  • arranque de primavera
  • gato

De acuerdo con los requisitos de la guía de acceso de la documentación para desarrolladores de WeChat, cifre y compare los parámetros de solicitud de obtención enviados por WeChat.

202301161502

Escriba una interfaz de verificación de WeChat en el controlador de servicio Springboot y obtenga los parámetros pasados ​​por WeChat para procesarlos de acuerdo con los requisitos.

/**
 * 微信服务调用接口
 */
@Controller
@RequestMapping("/wechat")
public class WeChatTest {
    
    

    private static String wxToken="flzabc123";

    @GetMapping("")
    public void weChatTestV(HttpServletRequest request, HttpServletResponse response) {
    
    

        // 1、验证消息的确来自微信服务器
        String signature = request.getParameter("signature");
        String timestamp = request.getParameter("timestamp");
        String nonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");

        //将微信echostr返回给微信服务器
        try(OutputStream os = response.getOutputStream()) {
    
    
            String sha1 = getSHA1(wxToken, timestamp, nonce, "");

            //和signature进行对比
            if (sha1.equals(signature)){
    
    
            // 返回echostr给微信
                os.write(URLEncoder.encode(echostr, "UTF-8").getBytes());
                os.flush();
                
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }


    /**
     * 用SHA1算法生成安全签名
     *
     * @param token     票据
     * @param timestamp 时间戳
     * @param nonce     随机字符串
     * @param encrypt   密文
     * @return 安全签名
     * @throws Exception
     */
    public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws Exception {
    
    
        try {
    
    
            String[] array = new String[]{
    
    token, timestamp, nonce, encrypt};
            StringBuffer sb = new StringBuffer();
            // 字符串排序
            Arrays.sort(array);
            for (int i = 0; i < 4; i++) {
    
    
                sb.append(array[i]);
            }
            String str = sb.toString();
            // SHA1签名生成
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            md.update(str.getBytes());
            byte[] digest = md.digest();
            StringBuffer hexstr = new StringBuffer();
            String shaHex = "";
            for (int i = 0; i < digest.length; i++) {
    
    
                shaHex = Integer.toHexString(digest[i] & 0xFF);
                if (shaHex.length() < 2) {
    
    
                    hexstr.append(0);
                }
                hexstr.append(shaHex);
            }
            return hexstr.toString();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        return "";
    }



}

Después de escribir la interfaz, inicie el servicio e inicie Springboot, el puerto 8080 se expone aquí.

202301161502

2. Penetración de la intranet

Aquí utilizamos la penetración de la intranet cpolar para asignar servicios locales a la red pública. No es necesaria una IP de red pública ni configurar un enrutador. La operación es muy simple. [cpolar.cn ha sido registrado]

2.1 Descargue e instale la penetración de la intranet cpolar

cpolar官网:https://www.cpolar.com/

Visite el sitio web oficial de cpolar, registre una cuenta y descargue e instale el cliente cpolar. Para obtener más información, consulteTutorial de documentación para su descarga e instalación.

20230116153634

2.2 Crear túnel

Después de instalar cpolar correctamente, accedemos al puerto local 9200 en el navegador e iniciamos sesión en la interfaz web ui de Cpolar:http://localhost:9200< ai= 2>.

Haga clic en Administración de túneles - Crear túnel en el panel izquierdo. Creemos un túnel para asignar el servicio web en el puerto local 8080 a la red pública:

  • Nombre del túnel: personalizable, tenga cuidado de no duplicar el nombre de un túnel existente
  • Protocolo: protocolo http
  • Dirección local: 80
  • Tipo de nombre de dominio: elija un nombre de dominio aleatorio de forma gratuita
  • Región: Seleccionar China VIP

Hacer clic创建

202301161503

Después de que el túnel se haya creado exitosamente, la página salta automáticamente a la lista de túneles. Puede ver el túnel túnel-1 que acaba de crearse exitosamente. El estado es activo, lo que indica que normalmente está en línea. Tenga en cuenta que no es necesario hacer clic para empezar de nuevo.

Haga clic en el estado del panel de la izquierda: lista de túneles en línea. Puede ver que el túnel que acaba de crear ha generado una dirección de red pública correspondiente, un protocolo http y un protocolo https (evitando los tediosos pasos de configurar un certificado SSL). Ambos están disponibles, acceda al servicio web local y copie la dirección pública.

202301161504

3. Pruebe el acceso a la red pública

Abra la página de la cuenta oficial de la plataforma pública WeChat, haga clic en la configuración básica a continuación y complete la dirección pública copiada en el cuadro URL.

202301161505

Un envío exitoso indica una verificación exitosa.

202301161506

Haga clic para habilitar la configuración del servidor. Si la operación es exitosa, significa que la activación fue exitosa.

202301161507

4. Nombre de dominio fijo

Dado que la dirección de red pública configurada anteriormente utiliza una dirección aleatoria y cambiará aleatoriamente dentro de las 24 horas, para que el servicio funcione de manera más estable, se recomienda configurar una dirección de nombre de dominio fijo.

Tenga en cuenta que necesita actualizar el paquete cpolar al paquete básico o superior. [cpolar.cn ha sido registrado]

4.1 Reservar un nombre de subdominio de segundo nivel

Visite el sitio web oficial de Cpolarwww.cpolar.com, inicie sesión en el backend del sitio web oficial de cpolar, haga clic en Reservar a la izquierda y busque el nombre del subdominio reservado de segundo nivel:

  • Región: Seleccionar China VIP
  • Nombre de dominio de segundo nivel: se puede personalizar
  • Descripción: Notas, que se pueden personalizar.

Hacer clic保留

202301161508

Solicite que el nombre del subdominio se reserve correctamente y copie el nombre del subdominio reservado de segundo nivel

202301161509

4.2 Configurar el nombre del subdominio de segundo nivel

Visitehttp://127.0.0.1:9200/, inicie sesión en la interfaz de administración de la interfaz de usuario web de cpolar, haga clic en Administración de túneles en la página Panel izquierdo: lista de túneles, busque el túnel de desarrollo http WeChat que acaba de crear y haga clic en Editar a la derecha.

202301161510

Modifique la información del túnel y configure el nombre del subdominio de segundo nivel reservado correctamente en el túnel.

  • Tipo de nombre de dominio: seleccione un nombre de subdominio de segundo nivel
  • Subdominio: complete el nombre del subdominio de segundo nivel reservado correctamente

Hacer clic更新

202301161511

Después de la actualización, abra nuevamente la lista de túneles en línea. En este momento, puede ver que el túnel se ha convertido en un nombre de subdominio fijo de segundo nivel. El nombre es wechat que reservamos en el sitio web oficial y luego copie el nombre de dominio.

202301161512

5. Utilice nombres de subdominios fijos de segundo nivel para el desarrollo de WeChat.

Abra la plataforma pública WeChat - página de cuenta pública, haga clic en Configuración básica, modifique el valor de la URL. Antes de modificar, debe hacer clic para desactivar la configuración del servidor y hacer clic en Enviar después de reemplazarla.

202301161513

Un envío exitoso indica que el reemplazo fue exitoso.

202301161514

Luego, haga clic para iniciar la configuración del servidor. Si la operación es exitosa, significa éxito. Luego podrá usar el servidor local para el desarrollo de WeChat.

202301161515

Reimpreso del artículo de cpolar pole cloud:Desarrollo de cuentas públicas de WeChat: acoplamiento con el entorno de desarrollo local [penetración de intranet]

Supongo que te gusta

Origin blog.csdn.net/ks_wyf/article/details/133951415
Recomendado
Clasificación