Heim  >  Artikel  >  Backend-Entwicklung  >  Tipps zur Implementierung individueller Sharing-Funktionen in WeChat-Miniprogrammen mit PHP

Tipps zur Implementierung individueller Sharing-Funktionen in WeChat-Miniprogrammen mit PHP

王林
王林Original
2023-05-31 20:21:162233Durchsuche

Mit der Beliebtheit von WeChat-Miniprogrammen beginnen immer mehr Entwickler, auf die Entwicklungskompetenzen und Best Practices von WeChat-Miniprogrammen zu achten. Eines der wichtigen Features ist die benutzerdefinierte Sharing-Funktion, denn diese trägt dazu bei, das Benutzererlebnis und den Kommunikationseffekt des Miniprogramms zu verbessern. In diesem Artikel stellen wir vor, wie Sie mit PHP benutzerdefinierte Freigabefunktionen in WeChat-Miniprogrammen implementieren.

1. Freigabeprinzip des WeChat Mini-Programms

Im WeChat Mini-Programm ähnelt das Implementierungsprinzip der benutzerdefinierten Freigabefunktion dem des offiziellen WeChat-Kontos. Wenn der Benutzer auf die Schaltfläche „Teilen“ klickt, sendet das Miniprogramm eine Anfrage an den WeChat-Server, um die Freigabeinformationen der Miniprogrammseite abzurufen. Der WeChat-Server gibt JSON-Daten zurück, die Informationen wie den Freigabetitel, die Freigabebeschreibung, den Freigabelink und das Freigabebild enthalten, und das Miniprogramm zeigt diese Informationen im Popup-Freigabefeld an.

2. Implementierungsschritte für benutzerdefinierte Freigabeinformationen

1. Erhalten Sie access_token

Bevor wir die benutzerdefinierte Freigabefunktion verwenden, müssen wir das access_token des WeChat-Applets abrufen, das das Token für den Zugriff auf die WeChat-API ist. Wir können den folgenden Code verwenden, um das access_token zu erhalten:

$wx_appid = 'your_appid'; // 小程序的appid
$wx_appsecret = 'your_appsecret'; // 小程序的appsecret
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$wx_appid}&secret={$wx_appsecret}";
$result = json_decode(file_get_contents($url), true);
$access_token = $result['access_token'];

2. jsapi_ticket abrufen

Das Abrufen von jsapi_ticket ist für die Signatur erforderlich, die beim späteren Aufrufen der WeChat-API mit JSSDK erforderlich ist. Wir können den folgenden Code verwenden, um jsapi_ticket zu erhalten:

$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$access_token}&type=jsapi";
$result = json_decode(file_get_contents($url), true);
$jsapi_ticket = $result['ticket'];

3. Signatur generieren

Auf der Miniprogrammseite müssen wir das von WeChat bereitgestellte JSSDK verwenden, um die WeChat-API aufzurufen. Bevor wir jedoch JSSDK verwenden, müssen wir eine Signatur generieren, um die Legitimität des Anrufers zu überprüfen. Wir können den folgenden Code verwenden, um eine Signatur zu generieren:

$noncestr = mt_rand(); // 生成随机字符串
$timestamp = time(); // 生成时间戳
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // 当前页面的URL
$string = "jsapi_ticket={$jsapi_ticket}&noncestr={$noncestr}&timestamp={$timestamp}&url={$url}";
$signature = sha1($string); // 生成签名

4. Informationen zum Teilen festlegen

Durch die oben genannten Schritte haben wir die erforderlichen Informationen erhalten und müssen sie als Nächstes an den Miniprogramm-Client senden. Wir können den folgenden Code verwenden, um die gemeinsame Nutzung von Informationen einzurichten:

$share_info = array(
    'title' => 'your_share_title', // 分享标题
    'desc' => 'your_share_desc', // 分享描述
    'link' => 'your_share_link', // 分享链接
    'imgUrl' => 'your_share_imgurl', // 分享图片
);
$jsapi_config = array(
    'debug' => false, // 是否开启调试模式
    'appId' => $wx_appid, // 小程序的appid
    'timestamp' => $timestamp, // 时间戳
    'nonceStr' => $noncestr, // 随机字符串
    'signature' => $signature, // 签名
    'jsApiList' => array('onMenuShareAppMessage', 'onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone'), // 需要使用的微信API列表
);
$share_info_json = json_encode($share_info);
$jsapi_config_json = json_encode($jsapi_config);
echo "<script>var share_info = {$share_info_json}; var jsapi_config = {$jsapi_config_json};</script>";

5. Rufen Sie JSSDK auf der Seite auf.

Stellen Sie abschließend die JSSDK-Bibliothek am Ende der Seite vor und rufen Sie die JSSDK-API an der entsprechenden Stelle auf. Wir können den folgenden Code verwenden, um die JSSDK-Bibliothek in die Seite einzuführen:

<script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>

Wo wir die benutzerdefinierte Freigabefunktion auf der Seite verwenden müssen, können wir den folgenden Code verwenden, um die WeChat-API aufzurufen:

wx.config(jsapi_config); // 初始化JSSDK库
wx.ready(function () {
    // onMenuShareAppMessage:分享给好友
    wx.onMenuShareAppMessage({
        title: share_info.title,
        desc: share_info.desc,
        link: share_info.link,
        imgUrl: share_info.imgUrl,
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    // onMenuShareTimeline:分享到朋友圈
    wx.onMenuShareTimeline({
        title: share_info.title,
        link: share_info.link,
        imgUrl: share_info.imgUrl,
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    // onMenuShareQQ:分享到QQ
    wx.onMenuShareQQ({
        title: share_info.title,
        desc: share_info.desc,
        link: share_info.link,
        imgUrl: share_info.imgUrl,
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    // onMenuShareWeibo:分享到微博
    wx.onMenuShareWeibo({
        title: share_info.title,
        desc: share_info.desc,
        link: share_info.link,
        imgUrl: share_info.imgUrl,
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });

    // onMenuShareQZone:分享到QQ空间
    wx.onMenuShareQZone({
        title: share_info.title,
        desc: share_info.desc,
        link: share_info.link,
        imgUrl: share_info.imgUrl,
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
});

3. Zusammenfassung

Im WeChat-Applet implementiert. Um die Freigabefunktion anzupassen, müssen Sie die Schritte zum Abrufen von access_token, jsapi_ticket und zum Generieren einer Signatur ausführen und schließlich die API von JSSDK auf der Seite aufrufen, um die Freigabefunktion abzuschließen. Obwohl der Implementierungsprozess relativ umständlich ist, müssen Sie der Miniprogrammseite nur einen Code hinzufügen, um eine schöne Freigabefunktion zu erreichen und die Benutzererfahrung und Kommunikationseffekte zu verbessern.

Das obige ist der detaillierte Inhalt vonTipps zur Implementierung individueller Sharing-Funktionen in WeChat-Miniprogrammen mit PHP. 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