php實現微信公衆號生成淘寶客推廣海報(正則匹配淘寶聯盟)

現在很多人做淘寶客,包括我。做淘寶客一個月也可以賺個一兩千零用錢,但是“淘寶聯盟”APP生成的帶二維碼宣傳圖在微信是被屏蔽的,無法打開的!

例如:

clipboard.png

所以很多做淘客的,開始開發自己的系統用於生成在微信能打開的頁面。

例如:

clipboard.png

本次講的是用公衆號一步生成此類的推廣圖。只要打開淘寶聯盟APP,獲取如下格式的推廣文案,把這段文案發到公衆號,然後公衆號通過後端正則匹配,提取裏面的核心內容,並且生成帶二維碼的宣傳圖即可,原理就這麼簡單。

圖片描述

我已經完成正則提取的這一步,生成圖片的這一步相信大家會做,我也沒完全寫完,這是一個思路。我的代碼實現了提取標題,原價,券後價和淘口令的這一步。

最後一步實現的是生成下面的宣傳圖。爲了把樣式寫得好看點,也是花了點時間。

clipboard.png

核心代碼:

<?php
define("TOKEN", "xiao");
//用於回覆用戶消息
function responseMsg(){
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    if (!empty($postStr)){
        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $MsgT = $postObj->MsgType;
        $time = time();
        //如果用戶發的text類型
        if($MsgT=="text"){
            $key = trim($postObj->Content);

            //正則匹配
            //提取標題
            preg_match('/.*【包郵】/',$key,$a);
            //提取在售價格部分
            preg_match('/【在售價】.*/',$key,$b);
            //提取券後價格部分
            preg_match('/【券後價】.*/',$key,$c);
            //提取淘口令
            preg_match('/€.*€/',$key,$d);
            //提取在售價格,保留小數點
            $zaishou = $b[0];
            if(preg_match('/(\d+)\.(\d+)/is',$zaishou,$arr1)){
                $zsj = $arr1[0];
              
            }
            //提取券後價格,保留小數點
            $quanhou = $c[0];
            if(preg_match('/(\d+)\.(\d+)/is',$quanhou,$arr2)){
                $qhj = $arr2[0];
            
            }

            //淘口令描述
            $tkl = urlencode("複製這段文字,打開手機淘寶查看".$d[0]);
            
            //計算優惠券價格,保留小數點
            $qjg = number_format($zsj-$qhj,2);

               //中文標題url編碼
               $goodstitle = urlencode($a[0]);

            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>"; 
            $msgType = "text";

            //公衆號給用戶微信回覆的內容
            $contentStr = $a[0]."\n".$zsj."\n".$qhj."\n".$d[0]."\n".$quan;
            
            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            echo $resultStr;
            exit;

        }

        //如果用戶發的event(事件)類型
        if($MsgT=="event"){
            $Event = $postObj->Event;
            if ($Event==subscribe) {
               $contentStr = "歡迎關注";
            }else{
                $contentStr = "希望您下次關注,但您收不到此條消息了";
            }
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>"; 
            $Title = $postObj->Title;
            $Description = $postObj->Description;
            $Url = $postObj->Url;
            $msgType = 'text';
            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            echo $resultStr;
            exit;
        }
    }else{
            echo "";
            exit;
    }
}

    $echoStr = $_GET["echostr"];
    //如果有$echoStr說明是對接
    if (!empty($echoStr)) {
        //對接規則
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        if( $tmpStr == $signature ){
            echo $echoStr;
        }else{
            echo "";
            exit;
        }
    }else{
        responseMsg();
    }
?>

新建tbk.php,拷貝以上代碼,上傳到服務器,記住上面的額token,是可以自己修改的,我這裏的token是xiao

登錄微信公衆號->基本配置->服務器配置
服務器地址(URL)就是填寫tbk.php所在的路徑的url
token就是代碼中自己設置的token
消息加解密密鑰就隨機生成即可

然後啓用,就可以了!!!

clipboard.png
作者:TANKING
有什麼不懂的可以諮詢微信:likeyunba520

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章