Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern

高洛峰
Freigeben: 2017-03-03 09:56:03
Original
1599 Leute haben es durchsucht

Um den Anforderungen der Benutzerkanal-Werbeanalyse gerecht zu werden, bietet die öffentliche Plattform eine Schnittstelle zum Generieren von QR-Codes. Über diese Schnittstelle können mehrere QR-Codes mit unterschiedlichen Szenenwerten abgerufen werden. Nachdem der Benutzer sie gescannt hat, kann das offizielle Konto einen Ereignis-Push erhalten. Derzeit gibt es zwei Arten von QR-Codes, nämlich temporäre QR-Codes und permanente QR-Codes. Erstere haben eine Ablaufzeit von bis zu 1800 Sekunden, können aber eine größere Anzahl generieren, während letztere keine Ablaufzeit und eine kleinere Anzahl haben (derzeit). Parameter unterstützen nur 1 bis 100.000). Die beiden QR-Codes eignen sich jeweils für die Kontobindung, Benutzerquellenstatistiken und andere Szenarien.

Wenn ein Benutzer einen QR-Code mit einem Szenenwert scannt, können die folgenden zwei Ereignisse ausgelöst werden:

1 Dem offiziellen Konto noch nicht gefolgt, kann der Benutzer dem offiziellen Konto folgen. Nach dem Verfolgen sendet WeChat die Veranstaltung mit Szenenwert an den Entwickler (z. B. einen für eine bestimmte Veranstaltung vorbereiteten QR-Code). Teilnehmer können ihn scannen und dem WeChat folgen Gleichzeitig kann das WeChat-Konto ereignisbezogene Informationen an den Benutzer senden.

2 Treten Sie nach dem Scannen automatisch in die Sitzung ein, und WeChat sendet auch das Scan-Ereignis mit Szenenwert an den Entwickler (dasselbe gilt für das obige Beispiel).

Der Prozess zum Erhalten eines QR-Codes mit Parametern umfasst zwei Schritte: Erstellen Sie zunächst ein QR-Code-Ticket und verwenden Sie dann das Ticket für den Austausch gegen den QR-Code.

QR-Code-Ticket erstellen

Jedes Mal erstellen Das QR-Code-Ticket muss einen vom Entwickler festgelegten Parameter (scene_id) bereitstellen. Der Prozess der Erstellung eines QR-Code-Tickets für temporären QR-Code und permanenten QR-Code wird eingeführt.

Anleitung zur Anforderung eines temporären QR-Codes:

 http请求方式: POST
 URL:  
 POST数据格式:json
 POST数据例子:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
Nach dem Login kopieren

Anleitung zum Anfordern eines permanenten QR-Codes

 http请求方式: POST
 URL:  
 POST数据格式:json
 POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
Nach dem Login kopieren

Die spezifischen Anweisungen zum Anfordern von JSON-Datenparametern lauten wie folgt :

Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern

Das Beispiel für das korrekte Json-Rückgabeergebnis lautet wie folgt:

{"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==","expire_seconds":60,"url":"http:\/\/weixin.qq.com\/q\/kZgfwMTm72WWPkovabbI"}
Nach dem Login kopieren

Das Format der zurückgegebenen JSON-Daten ist wie folgt:

Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern

Ein Beispiel für falsch Die Json-Rückgabe lautet wie folgt:

{"errcode":40013,"errmsg":"invalid appid"}
Nach dem Login kopieren

Als nächstes erstellen wir eine Visualforce-Seite, um Tickets zu generieren.

Der Visualforce-Seitencode lautet wie folgt:

<page> 
   <form> 
      <font><strong>第一步,创建二维码Ticket</strong><br><br> 
      请输入授权AccessToken:<inputtext></inputtext><br><br> 
      <commandbutton></commandbutton><br> 
      </font> 
  </form> 
  {!msg} 
</page>
Nach dem Login kopieren

Zeile 4 des obigen Codes platziert ein apex:inputText-Steuerelement, das einem HTML-Textfeld entspricht. Der Wert von value muss eine öffentliche Eigenschaft mit Getter Setter in der WeChatQRCodeGeneratorController-Klasse sein hat einen Standardwert, der Text Das Feld zeigt diesen Standardwert an. Wenn der Benutzer den Inhalt des Textfelds ändert, ändert sich auch der Wert des accessToken-Attributs automatisch. Zeile 5 platziert ein apex:commandButton-Steuerelement, das einer HTML-Schaltfläche entspricht. Durch Klicken auf diese Schaltfläche wird die in der Aktion angegebene Sendemethode ausgelöst. In der letzten Zeile 8 wird direkt die Variable msg angezeigt, mit der der von der WeChat-Schnittstelle zurückgegebene Json angezeigt wird. Der Bildschirmanzeigeeffekt ist wie folgt:

Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern

Der Code der WeChatQRCodeGeneratorController-Klasse lautet wie folgt:

public class WeChatQRCodeGeneratorController { 
    public String msg { get; set; } 
    public String accessToken { get; set; } 
    public void send() { 
        Http h = new Http(); 
        HttpRequest req = new HttpRequest(); 
        req.setMethod('POST'); 
        req.setHeader('Accept-Encoding','gzip,deflate'); 
        req.setHeader('Content-Type','text/xml;charset=UTF-8'); 
        req.setHeader('User-Agent','Jakarta Commons-HttpClient/3.1'); 
        
        String json = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 12345}}}'; 
        
        req.setBody(json); 
        req.setEndpoint('https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' + accessToken); 
        String bodyRes = ''; 
        
        try{ 
            HttpResponse res = h.send(req); 
            bodyRes = res.getBody(); 
        } 
        catch(System.CalloutException e) { 
            System.debug('Callout error: '+ e); 
            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.FATAL, e.getMessage())); 
        } 
        msg = bodyRes; 
    }   
}
Nach dem Login kopieren

Speichern Sie nach Abschluss den Code, geben Sie das richtige und gültige Zugriffstoken ein und klicken Sie auf „QR erstellen erstellen“. Klicken Sie auf die Schaltfläche „Code Ticket“, um das unten gezeigte Ergebnis zu erhalten. Die Quittung wird im Austausch für den QR-Code verwendet. Tatsächlich ist der Wert der letzten Parameter-URL im zurückgegebenen JSON der Wert des QR-Codes. Sie können dieses Ergebnis verwenden, um einen QR-Code über den Online-QR-Code-Generator zu generieren:

Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern

 

通过ticket换取二维码

获取二维码ticket后,开发者可用ticket换取二维码图片,本接口无需登录即可调用,接口请求说明如下:

 HTTP GET请求(请使用https协议)
 https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
Nach dem Login kopieren

 

返回说明:
Nach dem Login kopieren
ticket正确情况下,http 返回码是200,是一张图片,可以直接展示或者下载。
Nach dem Login kopieren

HTTP头(示例)如下:
Accept-Ranges:bytes
Cache-control:max-age=604800
Connection:keep-alive
Content-Length:28026
Content-Type:image/jpg
Date:Wed, 16 Oct 2013 06:37:10 GMT
Expires:Wed, 23 Oct 2013 14:37:10 +0800
Server:nginx/1.4.1
Nach dem Login kopieren

错误情况下(如ticket非法)返回HTTP错误码404。

利用前面返回的票据调用该接口示例如下:

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQH97zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2YweHpqY1hrX255RGdnckl0V0otAAIENIwAVAMECAcAAA==
Nach dem Login kopieren

 更多Die WeChat-Entwicklung von Force.com generiert QR-Code mit Parametern相关文章请关注PHP中文网!



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!