cari
Rumahphp教程php手册微信开发之Php批量生成带参数的二维码,php参数

微信开发之——Php批量生成带参数的二维码,php参数

带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧。

具体接口说明请参见,微信公众平台开发者文档(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>生成类型(临时、永久)</span>
<span> 7</span>             <span>$create_num</span>=<span>$this</span>->_post('create_num');     <span>//</span><span>生成数量
</span><span> 8</span> 
<span> 9</span> <span>            //数据库里查询最后生成一个编号</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>新生成在最后一个编辑上加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><=<span>$end_secne_id</span>;<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>这里代表生成成功,记录数据以便插入到数据库,方便以后统计查找</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>

 

 很简单,基本够用了,喜欢就拿走

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)