목차
微信推送模板消息的PHP代码整理
백엔드 개발 PHP 튜토리얼 微信推送模板消息的PHP代码整理_PHP教程

微信推送模板消息的PHP代码整理_PHP教程

Jul 13, 2016 am 09:52 AM
PHP 코드 위챗

微信推送模板消息的PHP代码整理

最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送。由于认证过的微信号,就用测试号做的,但是过程基本一致。

微信推送模板消息的PHP代码整理

本文基于微信平台的官方文档写成,http://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl

首先,得在微信的后台管理中设置一下,模板消息的格式,获取到一个模板消息的id

<ol class="dp-c"><li class="alt"><span><span>{{first.DATA}}  </span></span></li><li><span>被撕的人:{{name.DATA}}  </span></li><li class="alt"><span>被撕人的组别:{{zu.DATA}}  </span></li><li><span>被撕时间:{{time.DATA}}  </span></li><li class="alt"><span>本组剩余的人:{{remain.DATA}} </span></li><li><span>{{remark.DATA}} </span></li></ol>
로그인 후 복사

这里以做的一个撕名牌的通知为例,相关参数的设置如上。生成id备用。

下面直接贴出需要调用的函数moban() 和它的辅助函数http_request()

<ol class="dp-c"><li class="alt"><span><span>http_request(){ </span></span></li><li><span><span class="vars">$ch</span><span> = curl_init(); </span></span></li><li class="alt"><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_URL, </span><span class="vars">$url</span><span>); </span></span></li><li><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_RETURNTRANSFER, 1); </span></span></li><li class="alt"><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_SSL_VERIFYPEER, FALSE); </span></span></li><li><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_SSL_VERIFYHOST, FALSE); </span></span></li><li class="alt"><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_POST, 1); </span></span></li><li><span>curl_setopt(<span class="vars">$ch</span><span>, CURLOPT_POSTFIELDS, </span><span class="vars">$data</span><span>); </span></span></li><li class="alt"><span><span class="vars">$output</span><span> = curl_exec(</span><span class="vars">$ch</span><span>); </span></span></li><li><span>curl_close(<span class="vars">$ch</span><span>); </span></span></li><li class="alt"><span><span class="keyword">return</span><span> </span><span class="vars">$output</span><span>; </span></span></li><li><span>} </span></li><li class="alt"><span> </span></li><li><span>  <span class="keyword">function</span><span> moban(</span><span class="vars">$name</span><span>,</span><span class="vars">$zu</span><span>,</span><span class="vars">$remain</span><span>,</span><span class="vars">$openid</span><span>) </span></span></li><li class="alt"><span>  { </span></li><li><span> </span></li><li class="alt"><span> <span class="vars">$appid</span><span>=</span><span class="string">""</span><span>;       </span><span class="comment">//填写微信后台的appid</span><span> </span></span></li><li><span> <span class="vars">$appsecret</span><span>=</span><span class="string">""</span><span>;   </span><span class="comment">//填写微信后台的appsecret</span><span> </span></span></li><li class="alt"><span> <span class="comment">//从数据库查看access_token</span><span> </span></span></li><li><span>              <span class="vars">$sql</span><span>=</span><span class="string">"SELECT * FROM `tokentime` WHERE id='$appid'"</span><span>; </span></span></li><li class="alt"><span>              <span class="vars">$query</span><span>=mysql_query(</span><span class="vars">$sql</span><span>); </span></span></li><li><span>              <span class="vars">$rk</span><span>=mysql_fetch_array(</span><span class="vars">$query</span><span>); </span></span></li><li class="alt"><span>              <span class="vars">$time</span><span>=</span><span class="func">date</span><span>(</span><span class="string">'Y-m-d H:i:s'</span><span>,time()); </span></span></li><li><span>              <span class="keyword">if</span><span>(</span><span class="vars">$rk</span><span>==</span><span class="string">""</span><span>)   </span><span class="comment">//数据库查询无结果 获取access_token并存入</span><span> </span></span></li><li class="alt"><span>              { </span></li><li><span>                    </span></li><li class="alt"><span>                   <span class="vars">$TOKEN_URL</span><span>=</span><span class="string">"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="</span><span>.</span><span class="vars">$appid</span><span>.</span><span class="string">"&secret="</span><span>.</span><span class="vars">$appsecret</span><span>; </span></span></li><li><span>                   <span class="vars">$json</span><span>=</span><span class="func">file_get_contents</span><span>(</span><span class="vars">$TOKEN_URL</span><span>); </span></span></li><li class="alt"><span>                   <span class="vars">$result</span><span>=json_decode(</span><span class="vars">$json</span><span>,true); </span></span></li><li><span>                   <span class="vars">$ACCESS_TOKEN</span><span>=</span><span class="vars">$result</span><span>[</span><span class="string">'access_token'</span><span>];   </span></span></li><li class="alt"><span>                  </span></li><li><span>                   <span class="vars">$sql1</span><span>=</span><span class="string">"INSERT INTO `tokentime` (`id`,`access_token`,`time`) VALUES ('$appid','$ACCESS_TOKEN','$time')"</span><span>; </span></span></li><li class="alt"><span>                   <span class="vars">$query1</span><span>=mysql_query(</span><span class="vars">$sql1</span><span>); </span></span></li><li><span>            } </span></li><li class="alt"><span>              <span class="keyword">else</span><span> </span></span></li><li><span>              {   <span class="vars">$time_b</span><span>=</span><span class="vars">$rk</span><span>[</span><span class="string">'time'</span><span>];</span><span class="comment">//上次存的时间</span><span> </span></span></li><li class="alt"><span>                  <span class="vars">$time_n</span><span>=</span><span class="func">date</span><span>(</span><span class="string">'Y-m-d H:i:s'</span><span>,time()-7200); </span></span></li><li><span>                     </span></li><li class="alt"><span>                  <span class="keyword">if</span><span>(</span><span class="vars">$rk</span><span>[</span><span class="string">'access_token'</span><span>]==</span><span class="string">""</span><span>||</span><span class="vars">$time_b</span><span><</span><span class="vars">$time_n</span><span>) </span></span></li><li><span>                  { </span></li><li class="alt"><span>                    <span class="vars">$TOKEN_URL</span><span>=</span><span class="string">"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="</span><span>.</span><span class="vars">$appid</span><span>.</span><span class="string">"&secret="</span><span>.</span><span class="vars">$appsecret</span><span>; </span></span></li><li><span>                   <span class="vars">$json</span><span>=</span><span class="func">file_get_contents</span><span>(</span><span class="vars">$TOKEN_URL</span><span>); </span></span></li><li class="alt"><span>                   <span class="vars">$result</span><span>=json_decode(</span><span class="vars">$json</span><span>,true); </span></span></li><li><span>                   <span class="vars">$ACCESS_TOKEN</span><span>=</span><span class="vars">$result</span><span>[</span><span class="string">'access_token'</span><span>];   </span></span></li><li class="alt"><span>                  </span></li><li><span>                   <span class="vars">$sql2</span><span>=</span><span class="string">"UPDATE tokentime SET access_token='$ACCESS_TOKEN',time='$time' WHERE id='$appid'"</span><span>; </span></span></li><li class="alt"><span>                   <span class="vars">$query2</span><span>=mysql_query(</span><span class="vars">$sql2</span><span>);         </span></span></li><li><span>                } </span></li><li class="alt"><span>                  <span class="keyword">else</span><span> </span></span></li><li><span>                  { </span></li><li class="alt"><span>                     <span class="vars">$ACCESS_TOKEN</span><span>=</span><span class="vars">$rk</span><span>[</span><span class="string">'access_token'</span><span>];  </span></span></li><li><span>                  } </span></li><li class="alt"><span>                } </span></li><li><span><span class="comment">//模板消息    </span><span> </span></span></li><li class="alt"><span>   <span class="vars">$times</span><span>= </span><span class="func">date</span><span>(</span><span class="string">'m月d日 H:i:s'</span><span>,time());   </span></span></li><li><span>       </span></li><li class="alt"><span><span class="vars">$template</span><span>=</span><span class="keyword">array</span><span>( </span></span></li><li><span><span class="string">'touser'</span><span>=></span><span class="vars">$openid</span><span>, </span></span></li><li class="alt"><span><span class="string">'template_id'</span><span>=></span><span class="string">"_0DQerSIqPZaB4vjQjjOIPRXZhcVooFT_390vDhHhVw"</span><span>,    </span><span class="comment">//模板的id</span><span> </span></span></li><li><span><span class="string">'url'</span><span>=></span><span class="string">"http://weixin.qq.com/download"</span><span>, </span></span></li><li class="alt"><span><span class="string">'topcolor'</span><span>=></span><span class="string">"#FF0000"</span><span>, </span></span></li><li><span><span class="string">'data'</span><span>=></span><span class="keyword">array</span><span>( </span></span></li><li class="alt"><span><span class="string">'name'</span><span>=></span><span class="keyword">array</span><span>(</span><span class="string">'value'</span><span>=>urlencode(</span><span class="vars">$name</span><span>),</span><span class="string">'color'</span><span>=></span><span class="string">"#00008B"</span><span>),    </span><span class="comment">//函数传参过来的name     </span><span> </span></span></li><li><span><span class="string">'zu'</span><span>=></span><span class="keyword">array</span><span>(</span><span class="string">'value'</span><span>=>urlencode(</span><span class="vars">$zu</span><span>),</span><span class="string">'color'</span><span>=></span><span class="string">'#00008B'</span><span>),        </span><span class="comment">//函数传参过来的zu</span><span> </span></span></li><li class="alt"><span><span class="string">'time'</span><span>=></span><span class="keyword">array</span><span>(</span><span class="string">'value'</span><span>=>urlencode(</span><span class="vars">$times</span><span>),</span><span class="string">'color'</span><span>=></span><span class="string">'#00008B'</span><span>),   </span><span class="comment">//时间</span><span> </span></span></li><li><span><span class="string">'remain'</span><span>=></span><span class="keyword">array</span><span>(</span><span class="string">'value'</span><span>=>urlencode(</span><span class="vars">$remain</span><span>),</span><span class="string">'color'</span><span>=></span><span class="string">'#00008B'</span><span>),</span><span class="comment">//函数传参过来的ramain</span><span> </span></span></li><li class="alt"><span>) </span></li><li><span>); </span></li><li class="alt"><span><span class="vars">$json_template</span><span>=json_encode(</span><span class="vars">$template</span><span>); </span></span></li><li><span><span class="vars">$url</span><span>=</span><span class="string">"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="</span><span>.</span><span class="vars">$ACCESS_TOKEN</span><span>; </span></span></li><li class="alt"><span><span class="vars">$res</span><span>=http_request(</span><span class="vars">$url</span><span>,urldecode(</span><span class="vars">$json_template</span><span>)); </span></span></li><li><span><span class="keyword">if</span><span> (</span><span class="vars">$res</span><span>[errcode]==0) </span><span class="func">echo</span><span> </span><span class="string">'消息发送成功!'</span><span>;  </span></span></li><li class="alt"><span>} </span></li></ol>
로그인 후 복사

函数的调用需要注意几点

1、moban()函数是需要传参的,具体传参的

<em id="__mceDel">moban($name,$zu,$remain,$openid<span>)   <br />$name 被撕的人<br />$zu   被撕的人组别<br />$remain 本组剩余的人<br />$openid 发送给哪个openid<br />传参的可以自行修改 只需要对应上函数里面模板的输出格式 <br />模板里面的appid appserect一定要填<br /><br /></span></em><span style="font-size: 15px;">2、数据库的一定在要在数据库里面建一个表,因为access_token的有效期只有7200s,防止它过期这里采用了数据库保存的方式,表名为tokentime,三个字段就可以了,分别是id(int) time(varchar) access_token(varchar)    //括号里面是格式,access_token字段一定要大一点<br /><br />至此就可以使用自己的模板给用户发消息了,由于发送模板消息是按照openid发送的,所有需要获取用户的openid。<br />等有时间,写一下如何批量获取用户的openid,存入数据库,并发送模板消息和其他操作。</span>
로그인 후 복사
 



www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1010948.htmlTechArticle微信推送模板消息的PHP代码整理 最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送。由于认证过的微信号,就用测试...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WeChat Moments에서 방문자를 볼 수 있나요? WeChat Moments에서 방문자를 볼 수 있나요? May 06, 2024 pm 01:30 PM

1. WeChat은 개인정보 보호에 세심한 주의를 기울이는 소셜 플랫폼입니다. 사용자는 자신의 모멘트나 개인 홈페이지를 누가 방문했는지 알 수 없습니다. 2. 이 디자인은 사용자의 개인 정보를 보호하고 잠재적인 괴롭힘이나 스누핑을 방지하기 위한 것입니다. 3. 사용자는 자신의 친구 서클에서만 좋아요와 댓글 기록을 볼 수 있으므로 개인 정보의 비밀이 더욱 보장됩니다.

'아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있으며, 중국 애플의 기술 컨설턴트는 앱 스토어 수수료에 대해 텐센트와 소통 중이라고 전했다. '아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있으며, 중국 애플의 기술 컨설턴트는 앱 스토어 수수료에 대해 텐센트와 소통 중이라고 전했다. Sep 02, 2024 pm 10:45 PM

단서를 제출해주신 네티즌 Qing Qiechensi, HH_KK, Satomi Ishihara 및 Wu Yanzu(중국 남부)에게 감사드립니다! 9월 2일자 뉴스에 따르면 최근 '아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있다. 이에 대해 쉘파이낸스 기자는 애플 공식 핫라인에 전화를 걸어 iOS 시스템이나 애플 기기가 계속 지원될 수 있다고 답했다. 위챗, 위챗을 이용해 애플 앱스토어에 계속해서 상장하고 다운로드할 수 있는지 여부에 대한 문제는 향후 상황을 판단하기 위해 애플과 텐센트 간의 소통과 논의가 필요하다. 소프트웨어 앱 스토어 및 위챗 문제 설명 소프트웨어 앱 스토어 기술 컨설턴트는 개발자가 소프트웨어를 애플 스토어에 올리려면 수수료를 지불해야 할 수도 있다고 지적했습니다. 특정 다운로드 횟수에 도달하면 Apple은 후속 다운로드에 대해 해당 요금을 지불해야 합니다. 애플은 텐센트와 적극적으로 소통하고 있으며,

WeChat에서 삭제된 채팅 기록을 복구하는 방법 WeChat에서 삭제된 채팅 기록을 복구하는 방법 May 06, 2024 pm 01:29 PM

1. 삭제된 위챗 채팅 기록을 복구하려면 데이터 이전을 위해 두 대의 휴대폰을 사용해야 합니다. 2. 기존 휴대폰에서 [나] → [설정] → [채팅] → [채팅기록 이전 및 백업]을 클릭하세요. 3. [이전]을 선택하고 대상 장치 플랫폼을 설정한 후 복원할 채팅 기록을 선택한 후 [시작]을 클릭하세요. 4. 그런 다음 새 휴대폰에서 동일한 계정으로 로그인하고 이전 휴대폰에서 QR 코드를 스캔하여 마이그레이션을 시작합니다. 5. 마이그레이션이 완료되면 삭제된 채팅기록이 새 휴대폰에 복원됩니다.

DeepSeek 이미지 생성 자습서 DeepSeek 이미지 생성 자습서 Feb 19, 2025 pm 04:15 PM

Deepseek : 강력한 AI 이미지 생성 도구! DeepSeek 자체는 이미지 생성 도구가 아니지만 강력한 핵심 기술은 많은 AI 페인팅 도구를 지원합니다. DeepSeek을 사용하여 이미지를 간접적으로 생성하는 방법을 알고 싶으십니까? 계속 읽으십시오! DeepSeek 기반 AI 도구로 이미지 생성 : 다음 단계에서는 다음 도구를 사용하도록 안내합니다. AI 페인팅 도구 시작 : DeepSeek 기반 AI 페인팅 도구를 검색하고 열면 "Simple AI"를 검색하십시오). 도면 모드 선택 : "AI 드로잉"또는 유사한 함수를 선택하고 "애니메이션 아바타", "풍경"과 같은 필요에 따라 이미지 유형을 선택하십시오.

WeChat Lingqiantong은 안전한가요? WeChat Lingqiantong은 안전한가요? Apr 29, 2024 am 10:23 AM

1. WeChat Lingqiantong은 사용자 계정의 보안을 보장하기 위해 비밀번호 보호, 실명 인증, 휴대폰 바인딩 등을 포함한 다층 보안 메커니즘을 채택합니다. 2. WeChat Pay는 SSL 암호화 전송, 실시간 모니터링 등 다양한 암호화 방법을 사용하여 거래 보안을 보장합니다. 3. WeChat Pay는 또한 은행 및 금융 기관과 협력하여 위험 통제 및 예방 조치를 구현하여 비정상적인 거래를 모니터링하고 처리합니다. 4. WeChat Lingqiantong을 사용할 때 사용자는 개인 계정 보호를 강화하고 복잡한 비밀번호를 설정하고 정기적으로 비밀번호를 변경하며 개인 정보를 임의로 공개하지 않아야 합니다.

WeChat 배경 이미지를 설정하는 방법 WeChat 배경 이미지를 설정하는 방법 Apr 26, 2024 am 11:01 AM

1. WeChat 앱을 열고 인터페이스 하단의 [나]를 클릭한 후 [설정] 기능을 선택합니다. 2. [채팅]을 클릭하고 [채팅 배경]을 클릭하여 채팅 배경 설정 인터페이스로 들어갑니다. 3. [배경 이미지 선택], [앨범에서 선택], [사진 찍기]를 클릭하세요. 4. 사용하려는 사진을 선택하여 클릭한 후 오른쪽 상단의 [사용]을 클릭하세요.

WeChat 채팅 기록을 다른 휴대폰으로 전송하는 방법 WeChat 채팅 기록을 다른 휴대폰으로 전송하는 방법 May 08, 2024 am 11:20 AM

1. 기존 단말기에서 "나" → "설정" → "채팅" → "채팅기록 이전 및 백업" → "이전"을 클릭하세요. 2. 마이그레이션할 대상 플랫폼 장치를 선택하고 마이그레이션할 채팅 기록을 선택한 후 "시작"을 클릭합니다. 3. 새 기기에서 동일한 WeChat 계정으로 로그인하고 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요.

WeChat에서 친구를 삭제한 후 채팅 기록을 복구하는 방법 WeChat에서 친구를 삭제한 후 채팅 기록을 복구하는 방법 Apr 29, 2024 am 11:01 AM

1. WeChat 앱을 열고 인터페이스 하단의 [주소록]을 클릭한 후 [새 친구]를 클릭하세요. 2. 페이지 상단 검색창에 친구의 위챗 아이디나 닉네임을 입력하세요. 3. 상대방이 사용자를 삭제하지 않은 경우, 해당 사용자는 검색결과에서 해당 친구를 찾을 수 있습니다. 4. 해당 친구를 클릭하면 해당 친구와의 채팅창에 들어가며, 이전 채팅 기록을 확인할 수 있습니다.

See all articles