Maison  >  Article  >  développement back-end  >  Comment implémenter la signature WeChat JS-SDK en PHP

Comment implémenter la signature WeChat JS-SDK en PHP

WBOY
WBOYoriginal
2023-05-13 12:40:361453parcourir

Avec la popularité et le développement de WeChat, les comptes officiels WeChat sont devenus la plateforme préférée de nombreuses entreprises et particuliers pour faire du marketing et de la publicité. Le WeChat JS-SDK fait partie intégrante du développement des comptes publics WeChat. Cela peut nous aider à mettre en œuvre des fonctions plus interactives et intéressantes, telles que le partage sur Moments, l'appel au paiement WeChat, etc. Cet article expliquera comment implémenter la signature WeChat JS-SDK en PHP pour permettre à chacun d'utiliser cette fonction en développement.

1. Introduction à WeChat JS-SDK

WeChat JS-SDK est un outil de développement fourni par les comptes officiels WeChat, qui nous permet d'utiliser diverses fonctions de WeChat dans les comptes officiels. Grâce à WeChat JS-SDK, nous pouvons appeler l'interface API de WeChat dans la page Web pour réaliser le partage, le paiement, la numérisation du code QR, le téléchargement et d'autres fonctions de WeChat, offrant ainsi une meilleure expérience utilisateur aux utilisateurs.

2. Principe de signature WeChat JS-SDK

Avant d'utiliser WeChat JS-SDK, nous devons appeler l'interface fournie par WeChat pour signer. Le principe de la signature WeChat JS-SDK est le suivant : sur la base du access_token et du jsapi_ticket pré-obtenus, l'URL actuellement demandée est cryptée et une signature est générée. Après avoir introduit le fichier JS dans la page frontale, vérifiez-le via wx.config. Le fichier JS demandera automatiquement au back-end une vérification de signature. Si la vérification réussit, vous pouvez passer à l'étape suivante.

3. Étapes de signature de WeChat JS-SDK

  1. Obtenez access_token et jsapi_ticket

Avant d'utiliser WeChat JS-SDK pour signer, nous devons obtenir les deux paramètres access_token et jsapi_ticket. Parmi eux, access_token est le seul identifiant utilisé par la plateforme publique WeChat lors de l'appel de chaque interface, et jsapi_ticket est le ticket temporaire utilisé dans js-sdk pour appeler l'interface WeChat JS. Il peut être obtenu des manières suivantes :

(1) access_token

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret =". $appsecret;
$res = json_decode(file_get_contents($url));
$access_token = $res->access_token;

(2) jsapi_ticket

$url = "https://api.weixin. qq.com /cgi-bin/ticket/getticket?type=jsapi&access_token=".$access_token;
$res = json_decode(file_get_contents($url));
$ticket = $res->ticket;

  1. Générer noncestr et timestamp

noncestr et timestamp sont tous deux des chaînes et des horodatages générés aléatoirement. Peut être obtenu en utilisant le code suivant :

$nonceStr = createNonceStr();
$timeStamp = time();

//Générer une chaîne aléatoire
function createNonceStr($length = 16){

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
    $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;

}

  1. Paire de paramètres Trier et concaténer les chaînes

Trier tous les paramètres selon le code ASCII du plus petit au plus grand et les concaténer en une chaîne. Faites attention à l'épissage en fonction des exigences de l'algorithme de signature, comme indiqué dans l'exemple suivant :

string1 = "jsapi_ticket=" . =" . $ url;

  1. Cryptez la chaîne épissée avec SHA1

Cryptez la chaîne épissée avec SHA1 pour générer une signature. Ces paramètres sont ensuite renvoyés ensemble au front-end. Comme le montre l'exemple suivant :

$signature = sha1($string1);

$data = array(

"appId" => $appid,
"nonceStr" => $nonceStr,
"timestamp" => $timeStamp,
"url" => $url,
"signature" => $signature,
"jsApiList" => array(
    "onMenuShareTimeline",
    "onMenuShareAppMessage",
    "onMenuShareQQ",
    "onMenuShareWeibo",
    "hideMenuItems",
    "showMenuItems",
    "chooseWXPay"
)

);

$signPackage = json_encode($data);

  1. Introduisez le fichier JS sur le page frontale et vérifiez-le

Introduisez le fichier JS fourni par WeChat dans la page frontale et appelez wx.config pour vérification Après une vérification réussie, vous pouvez utiliser les fonctions fournies par WeChat JS-SDK.

4. Conclusion

Cet article présente comment implémenter la signature WeChat JS-SDK en PHP. Je pense que tout le monde maîtrise la méthode de base. Lorsque vous utilisez WeChat JS-SDK, vous devez également effectuer des configurations et des appels pertinents en fonction des besoins réels. J'espère que cet article pourra vous aider à mieux utiliser les comptes publics WeChat pour les promotions marketing.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn