微信开发之Php批量生成带参数的二维码
带 参数 的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧。 具体接口说明请参见,微信公众平台 开发 者文档(http://mp.weixin.qq.co
带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧。
具体接口说明请参见,微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html),我这里就直接上代码。
演示图:
由于带参数二维码生成是有限的,所有我是按编号生成的,下次生成的时候直接累加。
另外带设置有备注,方便以后统计。
<span> 1</span> <span>public</span> <span>function</span><span> createewm(){ </span><span> 2</span> <span>if</span><span>(IS_POST){ </span><span> 3</span> <span>$access_token</span>=checkAccessToken(<span>$this</span>->token); <span>//</span><span>获取access_token</span> <span> 4</span> <span>$json_url</span>='https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.<span>$access_token</span><span>; </span><span> 5</span> <span> 6</span> <span>$action_name</span>=<span>$this</span>->_post('action_name'); <span>//</span><span><strong>生成</strong>类型(临时、永久)</span> <span> 7</span> <span>$create_num</span>=<span>$this</span>->_post('create_num'); <span>//</span><span><strong>生成</strong>数量 </span><span> 8</span> <span> 9</span> <span> //数据库里查询最后<strong>生成</strong>一个编号</span> <span>10</span> <span>$now_secne_id</span>=M('erweima')->where(<span>array</span>('token'=><span>$this</span>->token))->order('scene_id desc')->getField('scene_id'<span>); </span><span>11</span> <span>12</span> <span>//</span><span>新<strong>生成</strong>在最后一个编辑上加1</span> <span>13</span> <span>$start_secne_id</span>=<span>intval</span>(<span>$now_secne_id</span>)+1<span>; </span><span>14</span> <span>$end_secne_id</span>=<span>intval</span>(<span>$now_secne_id</span>)+<span>intval</span>(<span>$create_num</span><span>); </span><span>15</span> <span>$n</span>=0<span>; </span><span>16</span> <span>for</span>(<span>$i</span>=<span>$start_secne_id</span>;<span>$i</span>$end_secne_id;<span>$i</span>++<span>){ </span><span>17</span> <span>$curl_data</span>=''<span>; </span><span>18</span> <span>if</span>(<span>$action_name</span>=='QR_SCENE'<span>){ </span><span>19</span> <span>//</span><span>临时 post的json数据</span> <span>20</span> <span>$curl_data</span>='{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": '.<span>$i</span>.'}}}'<span>; </span><span>21</span> <span> } </span><span>22</span> <span>23</span> <span>if</span>(<span>$action_name</span>=='QR_LIMIT_SCENE'<span>){ </span><span>24</span> <span>//</span><span>永久 post的json数据</span> <span>25</span> <span>$curl_data</span>='{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.<span>$i</span>.'}}}'<span>; </span><span>26</span> <span> } </span><span>27</span> <span>$json_info</span>=json_decode(<span>$this</span>->api_notice_increment(<span>$json_url</span>,<span>$curl_data</span>),<span>true</span><span>); </span><span>28</span> <span>29</span> <span>//</span><span>这里代表<strong>生成</strong>成功,记录数据以便插入到数据库,方便以后统计查找</span> <span>30</span> <span>if</span>(<span>$json_info</span>['errcode']!=40013<span>){ </span><span>31</span> <span>$data</span>[<span>$n</span>]['token']=<span>$this</span>-><span>token; </span><span>32</span> <span>$data</span>[<span>$n</span>]['tiket']=<span>$json_info</span>['ticket'<span>]; </span><span>33</span> <span>$data</span>[<span>$n</span>]['url']=<span>$json_info</span>['url'<span>]; </span><span>34</span> <span>$data</span>[<span>$n</span>]['scene_id']=<span>$i</span><span>; </span><span>35</span> <span>$data</span>[<span>$n</span>]['expire_seconds']=<span>$json_info</span>['expire_seconds'<span>]; </span><span>36</span> <span>$data</span>[<span>$n</span>]['action_name']=<span>$action_name</span><span>; </span><span>37</span> <span>$data</span>[<span>$n</span>]['remark']=''<span>; </span><span>38</span> <span>$data</span>[<span>$n</span>]['createtime']=<span>time</span><span>(); </span><span>39</span> <span>$n</span>++<span>; </span><span>40</span> }<span>else</span><span>{ </span><span>41</span> <span>$this</span>->error('操作失败'<span>); </span><span>42</span> <span> } </span><span>43</span> <span> } </span><span>44</span> <span>45</span> <span>if</span>(<span>count</span>(<span>$data</span>)>0<span>){ </span><span>46</span> <span>$res</span>= M('erweima')->addAll(<span>$data</span>);<span>//</span><span>插入数据</span> <span>47</span> <span>if</span>(<span>$res</span><span>){ </span><span>48</span> <span>$this</span>->success('添加成功'<span>); </span><span>49</span> }<span>else</span><span>{ </span><span>50</span> <span>$this</span>->error('操作失败'<span>); </span><span>51</span> <span> } </span><span>52</span> }<span>else</span><span>{ </span><span>53</span> <span>$this</span>->error('操作失败'<span>); </span><span>54</span> <span> } </span><span>55</span> <span> } </span><span>56</span> }
<span>function</span> api_notice_increment(<span>$url</span>, <span>$data</span><span>){ </span><span>$ch</span> =<span> curl_init(); </span><span>$header</span> = "Accept-Charset: utf-8"<span>; curl_setopt(</span><span>$ch</span>, CURLOPT_URL, <span>$url</span><span>); curl_setopt(</span><span>$ch</span>, CURLOPT_CUSTOMREQUEST, "POST"<span>); curl_setopt(</span><span>$ch</span>, CURLOPT_SSL_VERIFYPEER, <span>FALSE</span><span>); curl_setopt(</span><span>$ch</span>, CURLOPT_SSL_VERIFYHOST, <span>FALSE</span><span>); curl_setopt(</span><span>$curl</span>, CURLOPT_HTTPHEADER, <span>$header</span><span>); curl_setopt(</span><span>$ch</span>, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'<span>); curl_setopt(</span><span>$ch</span>, CURLOPT_FOLLOWLOCATION, 1<span>); curl_setopt(</span><span>$ch</span>, CURLOPT_AUTOREFERER, 1<span>); curl_setopt(</span><span>$ch</span>, CURLOPT_POSTFIELDS, <span>$data</span><span>); curl_setopt(</span><span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>true</span><span>); </span><span>$tmpInfo</span> = curl_exec(<span>$ch</span><span>); </span><span>if</span> (curl_errno(<span>$ch</span><span>)) { </span><span>//</span><span>curl_close( $ch )</span> <span>return</span> <span>$ch</span><span>; }</span><span>else</span><span>{ </span><span>//</span><span>curl_close( $ch ) </span> <span>return</span> <span>$tmpInfo</span><span>; } curl_close( </span><span>$ch</span><span> ) ; }</span>
很简单,基本够用了,喜欢就拿走

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In PHP8 sind Übereinstimmungsausdrücke eine neue Kontrollstruktur, die unterschiedliche Ergebnisse basierend auf dem Wert des Expression zurückgibt. 1) Es ähnelt einer Switch -Anweisung, gibt jedoch einen Wert anstelle eines Ausführungsanweisungsblocks zurück. 2) Der Match -Ausdruck wird streng verglichen (===), was die Sicherheit verbessert. 3) Es vermeidet mögliche Auslassungen in Switch -Anweisungen und verbessert die Einfachheit und Lesbarkeit des Codes.

In PHP können Sie CSRF -Angriffe effektiv verhindern, indem Sie unvorhersehbare Token verwenden. Spezifische Methoden umfassen: 1. CSRF -Token in der Form erzeugen und einbetten; 2. Überprüfen Sie die Gültigkeit des Tokens bei der Bearbeitung der Anfrage.

H5. Der Hauptunterschied zwischen Mini -Programmen und App ist: Technische Architektur: H5 basiert auf Web -Technologie, und Mini -Programme und Apps sind unabhängige Anwendungen. Erfahrung und Funktionen: H5 ist leicht und einfach zu bedienen, mit begrenzten Funktionen; Mini -Programme sind leicht und haben eine gute Interaktivität. Apps sind leistungsstark und haben reibungslose Erfahrung. Kompatibilität: H5 ist plattformübergreifend, Applets und Apps werden von der Plattform eingeschränkt. Entwicklungskosten: H5 verfügt über niedrige Entwicklungskosten, mittlere Mini -Programme und die höchste App. Anwendbare Szenarien: H5 eignet sich für Informationsanzeigen, Applets eignen sich für leichte Anwendungen und Apps eignen sich für komplexe Funktionen.

Strenge Typen in PHP werden durch Hinzufügen von Declare aktiviert (strict_types = 1); oben in der Datei. 1) IT erzwingt die Typprüfung der Funktionsparameter und der Rückgabewerte, um die implizite Typumwandlung zu verhindern. 2) Die Verwendung strenger Typen kann die Zuverlässigkeit und Vorhersehbarkeit des Codes verbessern, Fehler reduzieren und die Wartbarkeit und Lesbarkeit verbessern.

In PHP wird das endgültige Schlüsselwort verwendet, um zu verhindern, dass Klassen vererbt werden, und die Methoden überschrieben werden. 1) Wenn die Klasse als endgültig markiert wird, kann die Klasse nicht vererbt werden. 2) Wenn die Methode als endgültig markiert wird, kann die Methode nicht von der Unterklasse neu geschrieben werden. Durch die Verwendung von endgültigen Schlüsselwörtern wird die Stabilität und Sicherheit Ihres Codes sichergestellt.

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.
