1.在natapp的程序下创建config.ini配置文件输入以下内容
添加自己的authtoken
主要减少每次输入命令启动 https://natapp.cn/article/config_ini
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken= #对应一条隧道的authtoken
clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
2.需要在natapp上修改创建的免费隧道(购买的隧道也是大体一致)
修改的地方:
1.名称 这个是随意的 可以改可以不改
2.本地地址 这个是本地的ip地址 如果在自己的电脑跑项目可以不用
3.本地端口: 对应的你的项目启动端口 需要注意 我的是8080 默认是80
3.启动natapp程序
4.这是我的项目访问http://xutkk9.natappfree.cc/mini/specialProduct
返回的数据
到目前为止,如果不进行微信开 ,其他的人可以在公网上可以访问你的项目了
但是由于我是微信开发还需以下步骤
{
"status": 80200,
"message": "success",
"data": [{
"sn": "P489356631472123904",
"title": "龙蟠",
"price": 15230.0,
"smallImage": "/media/image/201810151553019280001.jpg",
"bigImage": "/media/image/201810151552525570001.jpg",
"gallery": [""],
"category": "设备"
}, {
"sn": "P489356632217096192",
"title": "中华",
"price": 15263.0,
"smallImage": "/media/image/201810151132009110001.jpg",
"bigImage": "/media/image/201810151131250240001.jpg",
"gallery": ["/media/image/201810151132009110001.jpg", "/media/image/201810151131250240001.jpg"],
"category": "设备"
}, {
"sn": "P489356632698179584",
"title": "空调清洗机",
"price": 15230.0,
"smallImage": null,
"bigImage": "/media/image/201810151552525570001.jpg",
"gallery": null,
"category": "设备"
}, {
"sn": "P489356632871784448",
"title": "MOTO检测仪",
"price": 15320.0,
"smallImage": "/media/image/201810151131250240001.jpg",
"bigImage": "/media/image/201810151131250240001.jpg",
"gallery": null,
"category": "设备"
}]
}
5.登录微信公众平台(点击即可)
在最下面找到基本配置功能
点击修改配置
以下是java后台代码
/**
signature:微信加密签名
echostr:随机字符串
timestamp:时间戳
nonce:随机数
只有在验证URL的时候查询字符串中才会有“echostr”这个字段,验证的方法是
将token、timestamp、nonce三个参数进行字典序排序
将三个参数字符串拼接成一个字符串进行sha1加密
开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
*/
import com.aui.stock.util.json.FastJsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.util.Arrays;
/**
* @date: 2018/11/2 11:33
* @author: YINLELE
* @description:用于内网穿透给微信验证用的
*/
@Controller
@RequestMapping("/mini")
public class MiniWxController {
Logger logger = LoggerFactory.getLogger(MiniWxController.class);
@GetMapping("")
public void doGet(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = null;
try {
out = response.getWriter();
if (chkJoinUp("***",//这里替换成你在公众平台的token就可以
request.getParameter("signature"),
request.getParameter("timestamp"),
request.getParameter("nonce"))) {
out.write(request.getParameter("echostr"));
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
out.close();
}
}
/**
* 公众号接入数据的验证
*/
public Boolean chkJoinUp(String token, String signature, String timestamp, String nonce) {
String[] arr = new String[] { token, timestamp, nonce };
logger.info("chkJoinUp={}", FastJsonUtil.toJson(arr));
Arrays.sort(arr);
StringBuffer content = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
content.append(arr[i]);
}
String temp = encodeSHA1(content.toString());
return temp.equals(signature);
}
private static String encodeSHA1(String content) {
if (content == null || content.length() == 0) {
return null;
}
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(content.getBytes("UTF-8"));
byte[] md = mdTemp.digest();
int j = md.length;
char buf[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
buf[k++] = hexDigits[byte0 & 0xf];
}
return new String(buf);
} catch (Exception e) {
return null;
}
}
}
以上是我操作所记录的,也许和你的做法大不相同,所以请多担待,抱歉
6.还需要去小程序平台认证服务器 点击即可(重点否则会报错)