Java微信服務號的開發(簡單入門)


進行微信服務號開發的步驟

一個別人已經搭建好的項目參考地址:下載鏈接

 

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.效果測試

 

項目參考:下載鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM