進行微信服務號開發的步驟
一個別人已經搭建好的項目參考地址:下載鏈接
1.搭建微信服務號的服務器
項目配置maven
<dependency>
<groupId>com.soecode.wx-tools</groupId>
<artifactId>wx-tools</artifactId>
<version>2.1.4-RELEASE</version>
</dependency>
配置微信參數
#配置如下
wx.appId=你的appId
wx.appSecret=你的appSecret
wx.token=你設置的token
wx.aesKey=如果選擇安全模式,需要填入。如果是明文模式,填空就好了
wx.mchId=商戶ID
controller
package com.jt.wx.controller;
import com.soecode.wxtools.api.IService;
import com.soecode.wxtools.api.WxMessageRouter;
import com.soecode.wxtools.api.WxService;
import com.soecode.wxtools.bean.WxXmlMessage;
import com.soecode.wxtools.util.xml.XStreamTransformer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@RestController
@RequestMapping("/wx")
public class WxController {
private IService iService = new WxService();
@GetMapping
public String check(String signature, String timestamp, String nonce, String echostr) {
if (iService.checkSignature(signature, timestamp, nonce, echostr)) {
return echostr;
}
return null;
}
@PostMapping
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
// 創建一個路由器
WxMessageRouter router = new WxMessageRouter(iService);
try {
// 微信服務器推送過來的是XML格式。
WxXmlMessage wx = XStreamTransformer.fromXml(WxXmlMessage.class, request.getInputStream());
System.out.println("消息:\n " + wx.getContent());
out.println(router.route(wx));
} catch (Exception e) {
e.printStackTrace();
} finally {
out.close();
}
}
}
2.映射服務器到服務號上面
如何使用內網映射?
我這邊找了下CSDN之前的博客,基本上推薦的方法有
1.花生殼,2ngrok
花生殼我去官網瞟了一眼基本上都是付費的,我就簡單入個門所以不考慮
2.ngrok推薦上國內的官網上面,國外的可能有牆還是怎么的,映射失敗
www.ngrok.cc
端口號選擇80,紅框內的一定不要填寫
本地啟動ngork:
3.公眾號與服務器關聯起來
appID,和appsecret,需要和服務器上面的一致
URL:是映射的外網地址,通過ngork映射的地址.注意增加controller的RequestMapping的值作為后綴
Token:是自己定義的與服務器保持一致就可以
4.效果測試
項目參考:下載鏈接