Heim >WeChat-Applet >Mini-Programmentwicklung >Der Benutzer des WeChat-Applets klickt auf die Schaltfläche, um einen Beispielcode mit Parametern für den QR-Code zu generieren

Der Benutzer des WeChat-Applets klickt auf die Schaltfläche, um einen Beispielcode mit Parametern für den QR-Code zu generieren

高洛峰
高洛峰Original
2017-03-26 15:28:194129Durchsuche

Ziel:
QR-Code anfordern und anzeigen
Schritte:
Der Benutzer klickt auf die Schaltfläche, um den QR-Code zu generieren
Schritte:
1. Das WeChat-Applet fordert den QR-Code an der Hintergrund
2. Der Hintergrund (Java/PHP) fordert den Tonken vom WeChat-Client an, basierend auf den WeChat-Applet-Informationen
3. Nachdem der Hintergrund den Tonken erhalten hat, fordert er das QR-Code-Bild vom WeChat-Client an
4. Der Hintergrund ruft das Bild ab und speichert es auf dem Server. Geben Sie den Pfad zum WeChat-Applet zurück.
5. Nachdem das WeChat-Applet den Pfad erhalten hat, laden Sie es erfolgreich herunter Laden Sie das Bild herunter und speichern Sie es lokal
7. Geben Sie nach dem erfolgreichen Speichern den Pfad in das Bild-Tag ein. Zeigen Sie
wxml

s-Code
<image class="scanimg" src="{{filePath}}" bindtap="getAgain"></image>
<button type="primary" bindtap="primary">点击生成二维码</button>

an

Java-Seitencode
primary:function (e) {
var _url = '后台地址';
  wx.request({
    url: _url,
//请求报文体
    data: [{
      id: agentCode
    }],
    method: 'POST',
    header: {
      'content-type': 'application/json'
    },
    success: function (res) {
//为00时表示成功,得到二维码的地址
      if (res.data.code == '00') {
        console.log("成功")
//下载二维码
        wx.downloadFile({
          url: res.data.body[0].URL,
          success: function (res) {
//如果二维码中的id为固定值可以将图片保存到本地,否则不用保存
            wx.saveFile({
              tempFilePath: res.tempFilePath,
              success: function (res) {
                console.log("保存成功")
_that.setData({
filePath: res.savedFilePath
})
console.log(res.savedFilePath)
try {
//id为定值,则将保存的地址存入缓存,非定值则只需要setData就行
wx.setStorageSync('filePath', res.savedFilePath)
} catch (e) {
console.log(e)
}
              },
              fail: function (res) {
                console.log("保存失败")
                console.log(res)
              }
            })
          }, fail: function (res) {
            util.msg("错误", "通讯失败")
            console.log(res)
          }
        })
      } else {
        console.log("错误")
        util.msg("错误", res.data.msg)
      }
    },
    fail: function () {
      util.msg("错误", "通讯失败")
      console.log(res)
    }
  })
}

Tipp
// 访问微信后台的URL
String URL = systemConfig.getString("LoginOrRegisterUrl");
// 请求类型
String grant_type = systemConfig.getString("grant_type");
// 第三方用户唯一凭证密钥
String secret = systemConfig.getString("secret");
// 第三方用户唯一凭证
String appId = systemConfig.getString("appid");
// 请求token时用到的URL
String tokenUrl = systemConfig.getString("tokenUrl");
// 向微信后台请求获取token
                        String sendGet = HttpClientConnectionManager.sendGet(
                                tokenUrl, "grant_type=" + grant_type
                                        + "&secret=" + secret + "&appid="
                                        + appId + "");
                        System.out.println(sendGet);
                        JSONObject json = JSONObject.fromObject(sendGet);
                        access_token = json.get("access_token").toString();
                        if (access_token == null) {
//没有token 则返回错误码和错误信息
                            agentDTO.setCode("0002");
                            agentDTO.setDesc("获取tokenId失败");
                            return agentDTO;
                        }
System.out.println(access_token);
// 访问微信后台带的json参数
                    Map<String, Object> map = new HashMap<String, Object>();
                    map.put("path", "pages/register");//你二维码中跳向的地址
                    map.put("width", "430");//图片大小
                    JSONObject json = JSONObject.fromObject(map);
                    HttpClientConnectionManager.httpPostWithJSON(URL
                            + access_token, json.toString(), id + "max");
                    // 返回给前端的后台服务器文件读取路径
                    String downloadUrl = systemConfig
                            .getString("agentImgDownloadUrl")
                            + id
                            + "max"
                            + "/";
                    // 返回给前端的后台服务器文件下载路径
                    String downloadfileUrl = downloadUrl + id + "max" + ".jpg";
                    agentResView.setURL(downloadfileUrl);
                    agentDTO.setAgentResView(agentResView);
agentDTO.setCode("00");
agentDTO.setDesc("成功");
                        return agentDTO;
1. Um einen QR-Code zu beantragen, können Sie für oder andere Methoden verwenden, um mehrere QR-Codes zu beantragen

2. Wenn der Wenn die ID quantitativ ist, klicken Sie jedes Mal auf die Schaltfläche, um festzustellen, ob der Dateipfad-Cache vorhanden ist. Wenn er nicht vorhanden ist, wird er im Hintergrund angezeigt

Das obige ist der detaillierte Inhalt vonDer Benutzer des WeChat-Applets klickt auf die Schaltfläche, um einen Beispielcode mit Parametern für den QR-Code zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn