Heim  >  Artikel  >  WeChat-Applet  >  So implementieren Sie eine Miniprogramm-Push-Vorlagennachricht

So implementieren Sie eine Miniprogramm-Push-Vorlagennachricht

WJ
WJOriginal
2020-06-10 14:24:113111Durchsuche

So implementieren Sie eine Miniprogramm-Push-Vorlagennachricht

Wie implementiert man das Miniprogramm zum Pushen von Vorlagennachrichten?

Im Folgenden sind die Entwicklungsschritte aufgeführt

Erhalten Sie die OpenID des Benutzers

Erhalten Sie die form_id oder prepay_id

Access_token erhalten

Vorlagennachricht senden

DEMO-Download-Adresse

Wichtige Tipps

Diese Methode verwendet das in PHP integrierte Curl-Modul, um Anfragen zu senden. Diese Methode wird verwendet, um während der Entwicklung auf den WeChat-Server zuzugreifen, wobei URL die Schnittstellenadresse, Params die Übertragungsparameter und Ispost sind Anforderungsmethode und https ist die Zertifikatsüberprüfung

 public static function curl($url, $params = false, $ispost = 0, $https = 0)
    {
        $httpInfo = array();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8'
            )
        );
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        if ($https) {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
        }
        if ($ispost) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            curl_setopt($ch, CURLOPT_URL, $url);
        } else {
            if ($params) {
                if (is_array($params)) {
                    $params = http_build_query($params);
                }
                curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
            } else {
                curl_setopt($ch, CURLOPT_URL, $url);
            }
        }
        $response = curl_exec($ch);
        if ($response === FALSE) {
            return false;
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
        curl_close($ch);
        return $response;
    }

Rufen Sie die OpenID des Benutzers ab

WeChat-Applet-Code. Es wird empfohlen, ihn global in app.js zu speichern, um den Aufruf zu erleichtern

wx.login({
      success: function (res) {
        wx.request({
          url: "www.xxx.com",  //你的服务器接口地址
          data: {
            code:res.code  //通过wx.login获取code发送至服务器
          },
          header: {
            'content-type': 'application/json'
          },
          success: function (res) {
            that.globalData.OpenId=res.data.openid //存储openid
          }
        })
      }
    })

Serverseitiger PHP-Code, ich verwende das Laravel-Framework. Kann selbst rekonstruiert werden

public function getUserInfo(Request $request)
    {
        $code = $request->get("code"); 
        $appid="";   //小程序appid
        $secret=""; //小程序secret
        $Url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secre . '&js_code=' . $code . '&grant_type=authorization_code'; //微信官方给出的接口,利用小程序内获取的code置换openid
        $UserInfo=HttpUtils::curl($Url, $params = false, $ispost = 0, $https = 1); //上文给出的curl方法
        echo $UserInfo; //输出结果,其中包含openid
    }

Formular_ID oder Prepay_ID abrufen

Dieser Artikel gibt nur eine kurze Einführung und überlässt es dem nächsten Blog um die WeChat-Zahlung zu erklären

1. form_id wird im Miniprogramm übermittelt. Die beim Senden des Formulars im Miniprogramm generierte ID wird zum Senden von Vorlagennachrichten erklärt und vom Entwickler benötigt Um dem Benutzer Dienste bereitzustellen, kann es dem Entwickler gestattet werden, innerhalb von 7 Tagen eine begrenzte Anzahl von Nachrichtenvorlagen an den Benutzer zu senden (eine Übermittlung des Formulars kann einmal ausgegeben werden, und die Anzahl der durch mehrere Übermittlungen ausgegebenen Einträge ist unabhängig). beeinflusst sich nicht gegenseitig)

2. prepay_id ist die Vorauszahlungs-ID, die beim Starten des Miniprogramms generiert wird. Wenn der Benutzer das Zahlungsverhalten im Miniprogramm abschließt, darf der Entwickler eine begrenzte Anzahl übertragen von Vorlagennachrichten an den Benutzer innerhalb von 7 Tagen (3 Nachrichten können für eine Zahlung gesendet werden, und die Anzahl der Nachrichten für mehrere Zahlungen ist unabhängig und schließt sich gegenseitig aus. Auswirkungen)

Access_token erhalten

Dies Die Methode stellt Parameter zum Abrufen von access_token und zum anschließenden Senden von Vorlagennachrichten bereit. Ich verwende das Laravel-Framework, das Sie selbst rekonstruieren können >Aufrufbeispiel

public static function access_token(){
        $appid="";   //小程序appid
        $secret=""; //小程序secret
        $Url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=". $appid."&secret=".$secret; //微信给出的获取access_token的接口
        $access_token=Cache::get("access_token");  //查询缓存中是否已存在access_token
        if($access_token==""){
            $access_token=json_decode(self::curl($Url))->{"access_token"};  //访问接口获取access_token
            Cache::put("access_token",$access_token,120); //设置缓存,过期时间2小时
        }
        return $access_token;
    }

Zusammenfassung

1. Openid zu erhalten ist ganz einfach, es ist Ihre App und Ihr Geheimnis. Machen Sie einfach keinen Fehler

2 ist das Gleiche wie oben. Machen Sie keinen Fehler beim Ausfüllen der Parameter.

3 Springen Sie in die Daten der Vorlagennachricht und geben Sie die Route ein Wenn Sie zu „pages/index/index“ springen, schreiben Sie nicht .../index/inex

Verwandte Empfehlungen:

Miniprogramm Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine Miniprogramm-Push-Vorlagennachricht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn