検索
ホームページWeChat アプレットWeChatの開発Chuanzhi と Dark Horse による WeChat パブリック プラットフォーム開発に関する推奨ビデオ チュートリアル リソース

WeChat パブリック プラットフォームは、個人、企業、組織にビジネス サービスとユーザー管理機能を提供する新しいサービス プラットフォームです。 WeChat パブリック プラットフォームには、主にリアルタイム コミュニケーション、メッセージ送信、マテリアル管理が含まれます。ユーザーは、公開アカウントのファンをグループ化して管理し、リアルタイムでコミュニケーションすることができます。また、ユーザー情報に自動的に返信する編集モードや開発モードなどの高度な機能も使用できます。 「Chuanzhi と Dark Horse WeChat パブリック プラットフォーム開発ビデオ チュートリアル」は、Chuanzhi Podcast と Dark Horse Programmers が共同制作した WeChat パブリック プラットフォーム開発ビデオ チュートリアルです。

Chuanzhi と Dark Horse による WeChat パブリック プラットフォーム開発に関する推奨ビデオ チュートリアル リソース

コース再生アドレス: http://www.php.cn/course/320.html

先生の教え方:

講義はフレンドリーで自然で、気取らず、気取らないものです。意図的に誇張するのではなく、雄弁かつ詳細に話し、教師と生徒は平等、協力、調和の雰囲気の中で静かに感情的な交流を行い、知識の渇望と探求をシンプルさと信頼性の中に統合します。 教育現場では、生徒は知識を獲得します。静かな思考と静かな承認を通じて

このビデオのより難しい点は、WeChat API インターフェイスの分析です。

WeChat 入口バインディング、WeChat イベント処理、およびこれらのファイルに含まれるすべての WeChat API 操作です。
WeChat 支払い、WeChat 赤い封筒、WeChat カードとクーポン、WeChat ストア。

1.index.php

<?php
include_once &#39;lib.inc.php&#39;;
  
$wcObj = new WeChat("YOUKUIYUAN");
$wcObj->wcValid();

2.WeChat入門クラス

<?php
/**
 * Description of wechat
 *
 * @author Administrator
 */
class WeChat extends WxApi{
  public $token = "";
  //put your code here
  public function __construct($token = "") {
    parent::__construct();
    $this->token = $token;
  }
  
  public function wcCheckSignature(){
    try{
      if (empty($this->token)) {
        throw new Exception(&#39;TOKEN is not defined!&#39;);
      }
        
      $signature = $_GET["signature"];
      $timestamp = $_GET["timestamp"];
      $nonce = $_GET["nonce"];
          
      $token = $this->token;
      $tmpArr = array($token, $timestamp, $nonce);
      // use SORT_STRING rule
      sort($tmpArr, SORT_STRING);
      $tmpStr = implode( $tmpArr );
      $tmpStr = sha1( $tmpStr );
  
      if( $tmpStr == $signature ){
          return true;
      }else{
          return false;
      }
    } 
    catch (Exception $e) {
      echo &#39;Message: &#39; .$e->getMessage();
    }
  }
    
  public function wcValid(){
    $echoStr = isset($_GET["echostr"]) && !empty($_GET["echostr"]) ? addslashes($_GET["echostr"]) : NULL;
    if(is_null($echoStr)){
      $this->wcMsg();
    }
    else{
      //valid signature , option
      if($this->wcCheckSignature()){
        echo $echoStr;
        exit;
      }
      else{
        exit();
      }
    }
  }
    
  public function wcMsg(){
    //get post data, May be due to the different environments
    $postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"]) && !empty($GLOBALS["HTTP_RAW_POST_DATA"]) ? $GLOBALS["HTTP_RAW_POST_DATA"] : "";
    if(!empty($postStr)){
      libxml_disable_entity_loader(true);
      $postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
      $this->zcLog(TRUE,$postObj);
        
      $fromUsername = $postObj->FromUserName;
      $toUsername = $postObj->ToUserName;
      $MsgType = $postObj->MsgType;
        
      if($MsgType == &#39;event&#39;){//执行事件相应
        $Event = $postObj->Event;
        switch ($Event) {
          case &#39;subscribe&#39;://关注
            break;
          case &#39;unsubscribe&#39;://取消关注
            break;
          case &#39;SCAN&#39;://扫描
            break;
          case &#39;LOCATION&#39;://地址
            break;
          case &#39;CLICK&#39;://点击时间
            break;
          case &#39;VIEW&#39;://跳转
            break;
          case &#39;card_pass_check&#39;://卡券审核通过
            break;
          case &#39;card_not_pass_check&#39;://卡券审核失败
            break;
          case &#39;user_get_card&#39;://用户领取卡券
            break;
          case &#39;user_del_card&#39;://用户删除卡券
            break;
          case &#39;user_view_card&#39;://用户浏览会员卡
            break;
          case &#39;user_consume_card&#39;://用户核销卡券
            break;
          case &#39;merchant_order&#39;://微小店用户下单付款
            break;
          default:
            break;
        }
      }
      else{
        switch ($MsgType) {
          case &#39;text&#39;://文本格式
            break;
          case &#39;image&#39;://图片格式
            break;
          case &#39;voice&#39;://声音
            break;
          case &#39;video&#39;://视频
            break;
          case &#39;shortvideo&#39;://小视频
            break;
          case &#39;location&#39;://上传地理位置
            break;
          case &#39;link&#39;://链接相应
            break;
          default:
            break;
        }        
      }
        
      ////////////////////////////////////////////////////////////////////
      $keyword = trim($postObj->Content);
      $time = time();
      $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content><![CDATA[%s]]></Content>
              <FuncFlag>0</FuncFlag>
            </xml>";       
      if(!empty( $keyword )){
        $msgType = "text";
        $contentStr = "Welcome to wechat world!";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;
      }
      else{
        echo "Input something...";
      }
      ////////////////////////////////////////////////////////////////////
    }
    else{
      echo "暂时没有任何信息!";
      exit;
    }
  }
    
  //日志LOG
  public function zcLog($errcode , $errmsg){
    $this->returnAy = array();
    $this->returnAy[&#39;errcode&#39;] = $errcode;
    $this->returnAy[&#39;errmsg&#39;] = $errmsg;
    $this->returnAy[&#39;errtime&#39;] = date("Y-m-d H:i:s",time());
    $logfile = fopen("logfile_".date("Ymd",time()).".txt", "a+");
    $txt = json_encode($this->returnAy)."\n";
    fwrite($logfile, $txt);
    fclose($logfile);
    //return $this->returnAy;
  }
    
}

以上がChuanzhi と Dark Horse による WeChat パブリック プラットフォーム開発に関する推奨ビデオ チュートリアル リソースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール