在微信开发中,需要回调到本地服务器做测试用,但这时是不能回调到本地网络服务的,怎么解决呢?
在这里插入图片描述

进行内网穿透来解决本地网络调试支付等问题可以通过以下几种方式:

一、使用ngrok工具

  1. 注册与下载

    • 首先,访问ngrok官网(https://ngrok.com/)进行注册账号。注册完成后,下载适合你操作系统的ngrok客户端。例如,如果你是Windows系统,就下载Windows版本的客户端;如果是Mac系统,下载Mac版本。
  2. 配置与使用

    • 解压下载的ngrok客户端文件。然后,在命令行中进入ngrok安装目录。
    • 假设你要将本地的80端口(通常用于Web服务)暴露到公网,在命令行中输入命令(以注册后的认证令牌为YOUR_AUTH_TOKEN为例):
      • ngrok authtoken YOUR_AUTH_TOKEN,这个命令用于设置你的认证令牌,使得ngrok可以为你提供服务。
      • 接着输入ngrok http 80,ngrok就会建立一个安全隧道,将本地的80端口映射到一个随机生成的公网URL上,例如https://abcdef.ngrok.io。这个公网URL就可以用于微信开发中的调试,如在微信支付回调配置中,将这个公网URL作为回调地址。
  3. 注意事项

    • ngrok提供的免费服务有一定的限制,例如可能会有带宽限制或者临时的网络中断。如果是用于商业用途或者对稳定性要求较高的场景,可以考虑购买ngrok的付费服务来获得更好的性能和稳定性。

二、使用frp工具(适用于有一定技术基础的开发者)

  1. 服务端和客户端配置文件编写
    • 首先,在具有公网IP的服务器上部署frp服务端。下载frp的服务端程序(可以从官方GitHub仓库获取),并编写服务端配置文件frps.ini。例如:
      [common]
      bind_port = 7000
      
      这个配置表示frp服务端监听的端口为7000。
    • 在本地开发机器上,编写客户端配置文件frpc.ini。假设要将本地的8080端口映射到公网,配置如下:
      [common]
      server_addr = YOUR_SERVER_IP
      server_port = 7000
      [web]
      type = http
      local_port = 8080
      custom_domains = YOUR_CUSTOM_DOMAIN
      
      其中YOUR_SERVER_IP是公网服务器的IP地址,YOUR_CUSTOM_DOMAIN可以是自己购买的域名(如果没有域名,也可以先使用服务器的IP地址进行测试)。
  2. 启动服务端和客户端
    • 在公网服务器上,通过命令行进入frp服务端程序所在目录,运行frps -c frps.ini来启动服务端。
    • 在本地开发机器上,运行frpc -c frpc.ini来启动客户端。这样,本地的8080端口就会通过frp隧道映射到公网,可以使用对应的公网地址进行微信开发调试。
  3. 安全性考虑
    • frp在配置过程中,如果需要通过互联网访问,要注意设置安全的认证方式,避免未经授权的访问。可以在frps.inifrpc.ini中配置认证密钥,如在[common]节添加token = YOUR_AUTH_TOKEN来增强安全性。

三、使用花生壳等内网穿透软件(更适合新手)

  1. 软件下载与安装
    • 访问花生壳官网(https://hsk.oray.com/),下载并安装花生壳客户端软件。花生壳提供了简单易用的图形化界面,方便新手操作。
  2. 账号注册与登录
    • 注册花生壳账号并登录客户端。登录后,选择“内网穿透”功能。
  3. 添加映射
    • 点击“添加映射”按钮,在弹出的对话框中,选择要映射的本地应用类型(如HTTP、TCP等)。例如,如果是Web服务,选择HTTP类型。然后填写本地IP地址和端口号,花生壳会为你分配一个外网访问地址,这个地址就可以用于微信开发调试中的相关配置。
  4. 收费情况和功能限制
    • 花生壳有免费版和付费版。免费版有一定的功能限制,如带宽限制、映射数量限制等。如果在微信开发过程中需要更稳定的服务和更多的功能,可以考虑升级到付费版。
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐