天天看點

07-項目訓練_二維碼展示

目錄

​​1,功能說明​​

​​2,修改expressList.html、index.html​​

​​3,編寫QRCodeController實作:建立二維碼、展示二維碼内容​​

​​4,展示二維碼頁面​​

完整項目在這裡實時更新<( ̄︶ ̄)↗[GO!]:

​​​ExpressManagementSystem

07-項目訓練_二維碼展示
https://github.com/GoodbyeFirefly/ExpressManagementSystem​​

1,功能說明

二維碼主要展示兩方面的内容:辨別使用者(掃碼可檢視使用者手機号),辨別快遞(可看到快遞取件碼)

通過/wx/createQRCode.do來處理二維碼相關的請求。附帶參數type用來标記展示使用者還是快遞的二維碼,參數code、userPhone自選。比如/wx/createQRCode.do?type=express&code=123456

2,修改expressList.html、index.html

通過點選生成二維碼的連結,向後端發送建立二維碼的請求

expressList.html

07-項目訓練_二維碼展示

index.html

07-項目訓練_二維碼展示

3,編寫QRCodeController實作:建立二維碼、展示二維碼内容

建立二維碼(将要展示的資料存入session)、展示二維碼内容(将session中的資料返還給前端,并寫入二維碼中)

package com.xxy.wx.controller;

import com.xxy.bean.Message;
import com.xxy.mvc.ResponseBody;
import com.xxy.mvc.ResponseView;
import com.xxy.util.JSONUtil;
import com.xxy.util.UserUtil;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class QRCodeController {

    @ResponseView("/wx/createQRCode.do")
    public String createQRCode(HttpServletRequest request, HttpServletResponse response) {
        String type = request.getParameter("type");
        String code = null;
        String userPhone = null;
        String QRCodeContent = null;
        if ("express".equals(type)) {
            code = request.getParameter("code");
            QRCodeContent = "express_".concat(code);
        } else {
            // 這裡要先擷取微信使用者,再擷取其電話号碼
            userPhone = UserUtil.getWxUser(request.getSession()).getUserphone();
            QRCodeContent = "userPhone_".concat(userPhone);
        }
        HttpSession session = request.getSession();
        session.setAttribute("qrcode", QRCodeContent);
        return "/personQRcode.html";
    }

    @ResponseBody("/wx/qrcode.do")
    public String getQRCode(HttpServletRequest request, HttpServletResponse response) {
        String qrcode = (String) request.getSession().getAttribute("qrcode");
        Message msg = new Message();
        if (qrcode == null) {
            msg.setStatus(-1);
            msg.setResult("取件碼擷取出錯,請使用者重新操作");
        } else {
            msg.setStatus(0);
            msg.setResult(qrcode);
        }
        return JSONUtil.toJSON(msg);
    }
}      

修改application.properties

07-項目訓練_二維碼展示

4,展示二維碼頁面

07-項目訓練_二維碼展示