étape
La première étape de compte public micro-canal certifié
D'abord, vous devez avoir un numéro public micro-canal ou un compte développeur certifié, il n'y a pas compte public certifié. l'authentification de signature numérique peut être couronnée de succès, mais les informations de partage ne sont pas mis en place avec succès;
La deuxième étape est ajouté domaine de la sécurité
Ajouter l'application en cours d'exécution dans l'adresse du nom de domaine d'arrière-plan plate-forme compte public, il peut être interprété comme l'ajout de fonctionnalité de liste blanche pour un nom de domaine
Pour notre entreprise est banian comme exemple:
numéro public micro-canal est: sous l'arbre de banian, sous game.4gshu.com ajouté domaine de la sécurité numérique, alors je pages sur game.4gshu.com peuvent utiliser les banians signature des comptes publics
La troisième étape consiste à générer une signature numérique
Appid et trouver une chaîne secrète au-dessus de la plate-forme publique de micro-canal de fond
Grâce à ces données, une adresse de demande deux API public fourni par des micro-canaux, puis générer un ticket access_token correspondant généré par la règle et ensuite crypté dans une signature numérique
Notez que la signature numérique doit être généré sur le côté serveur, et là, je viens de réaliser NodeJS
Spécifique processus de génération de signature numérique, la version NodeJS
![](https://images0.cnblogs.com/blog/405426/201501/280924499562893.png)
1, pour obtenir le micro-signé la lettre nécessaire access_token
https.get ( 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid= votre appid écrivez ici votre = secret , et secrets écrire ici', fonction (_res) { // cette callbacks asynchrone où vous pouvez obtenir le access_token })
Remarque: Le frontal demandera des demandes inter-domaines, le meilleur traitement est l'arrière-plan, vous ne pouvez pas lancer une demande de Postman
2, pour obtenir les signatures requises billets microcellules
https.get ( « acquise à l'étape précédente https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token= type = & JSAPI la access_token », fonction (_res) { // elle peut être acquise dans un rappel asynchrone ticket });
Remarque: Le frontal demandera des demandes inter-domaines, le meilleur traitement est l'arrière-plan, vous ne pouvez pas lancer une demande de Postman
3, le procédé spécifique de génération d'une signature numérique
billet, noncestr, horodatage, règle url par micro message crypté avec SHA1
noncestr et un procédé de génération d'horodatage spécifique de fonction dans le paquet de lettre officielle de l'échantillon
// noncestr var createNonceStr = fonction () { retour Math.random () toString (36) .substr (2, 15. ); }; // horodatage var createTimeStamp = fonction () { retour parseInt ( nouveau + '' Date () getTime () / 1000.) ; };
Je peux également faire référence au code dans le code
// méthode signature de calcul var calcSignature = fonction (Ticket, noncestr, TS, URL) { var STR = 'jsapi_ticket =' + Ticket + '& noncestr =' + noncestr + '& timestamp =' + TS + '& URL =' + URL; shaObj = SHA1 (STR ); retour shaObj ; } var Signature = calcSignature (ticket, noncestr, horodatage, URL),
Shai fichier crypté
import * SHA1 de 'SHA1'
hex_sha1.hex_sha1 (str)
4, la signature de retour de sortie utilisé lorsque une signature numérique, et générer un horodatage de signature numérique, nonceStr, URL, et appid
Parce que les clients doivent utiliser dans l'initialisation du micro-canal JS-SDK
5, générant ainsi un succès de signature numérique
wx.config ({ Beta: true , Debug: false , // activer le mode de débogage, tous les appels alertent les valeurs de retour api sur le client, pour afficher les paramètres entrants, vous pouvez ouvrir le côté PC, les informations de paramètre par le jeu de journal, il sera imprimé que lorsque le PC. appId: « ww1437b9f5d1f742c6 » , horodatage: _this.timestamp, // requis pour générer un horodatage de signature nonceStr: _this.nonceStr, // requis pour générer une signature aléatoire chaîne signature: _this.signature, // requis, signatures, voir l' annexe algorithme des droits d'utilisation signature -JS-SDK jsApiList: [ 'checkJsApi' , 'updateAppMessageShareData' , 'updateTimelineShareData' , 'onMenuShareAppMessage', // ancienne interface, à savoir perdre 'onMenuShareTimeline' , 'shareWechatMessage' ], le succès: la fonction (RES) { // Callback la console.log (RES) }, Fail: fonction (RES) { le console.log (RES) SI ( res.errMsg.indexOf ( 'existe pas fonction')> -1 ) { alerte ( 'bas de mise à niveau de la version' ) } } })