La fonction de partage d'adresses de livraison de WeChat Pay consiste principalement à gérer uniformément les adresses de livraison personnelles des utilisateurs de WeChat, et leurs adresses de livraison peuvent être appliquées à tous les développeurs qui peuvent les appeler. L'adresse de livraison de l'utilisateur contient de nombreuses informations personnelles, cette interface doit donc être sollicitée. Le mode de candidature est consultable sur la plateforme mp.
L'utilisation de WeChat pour obtenir des informations d'adresse est appliquée avec le paiement WeChat. Une fois la demande de paiement WeChat passée, vous pouvez utiliser cette fonction.
Dans WeChat Mall, l'utilisation de WeChat Pay pour obtenir l'adresse de livraison de l'utilisateur peut éviter le processus compliqué de saisie des informations d'adresse par les utilisateurs et améliorer l'expérience utilisateur.
Cependant, cela peut être dû au fait que cela implique la confidentialité de l'utilisateur, donc lors de l'utilisation, l'utilisateur doit choisir activement d'utiliser cette fonction, et ce n'est que par un clic que nous pouvons obtenir l'adresse de livraison de l'utilisateur. attention à.
Le processus de fonctionnement est le suivant :
1. L'utilisateur ouvre la page du panier, clique sur le paiement et accède à une page WeChat oauth2 à l'adresse : https://open.weixin .qq.com/connect/oauth2/authorize
2. La page oauth2 redirige le lien vers la page de règlement, utilise PHP pour obtenir le paramètre de code dans le lien et obtient la valeur accessToken après traitement. Générez une signature et assemblez-la dans un tableau et transmettez les paramètres à la page.
3. La page de règlement utilise l'événement de clic utilisateur , combiné aux paramètres de tableau générés en 2 pour compléter la fonction d'obtention de l'adresse. Il peut y avoir ici une fonction pour enregistrer l'adresse obtenue dans la base de données en utilisant ajax, afin que le client n'ait pas à s'en soucier la prochaine fois qu'il effectuera un achat.
Parlons de quelques points auxquels il faut prêter attention en détail :
1. L'étape consistant à passer à WeChat oauth2 ne semble pas être très différente du point de vue de l'utilisateur. , mais il y a beaucoup de choses à faire dans le programme. Le premier concerne les paramètres de la page oauth2, où appid est l'appid WeChat, redirect_uri est l'adresse de la page de règlement des commandes après urlencode, réponse_type est un code fixe, scope est un snsapi_base fixe, et state est facultatif ici. Remplissez, et il y a un #wechat_redirect, alors l'apparence finale du lien est :
https://open.weixin.qq.com/connect/oauth2/authorize?appid= APPID&redirect_uri=adresse de règlement de la commande&response_type=code&scope =snsapi_base&state=N'hésitez pas à renseigner #wechat_redirect
2 L'utilisateur accède à cette adresse et est redirigé vers l'adresse de règlement de la commande avec le paramètre code ajouté. Sur cette page, l'accessToken. doit être obtenu par le programme. Notez que le accessToken est utilisé pour obtenir des informations sur l'utilisateur. Le accessToken n'est pas le même qu'un autre jeton d'accès utilisé pour interagir avec WeChat.
Utilisez la requête GET pour obtenir le accessToken, vous pouvez utiliser curl ou file_get_contents. L'adresse de la demande est :
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APP_SECRET&code=CODE&grant_type=authorization_code;
Il y a une chose à Notez ici que parfois WeChat subit une saisie et demande la page de règlement des commandes plusieurs fois de suite, ce qui rend le accessToken invalide et nécessite un traitement spécial.
La génération de signature ici est différente de la signature dans le paiement WeChat. Elle est beaucoup plus simple. Elle crypte simplement une chaîne au format : accesstoken=ACCESSTOKEN&appid=APPID&noncestr=32 caractères aléatoires String×tamp=. Timestamp&url=URL de la page actuelle, puis sha1crypte la chaîne.
Une série de paramètres doivent être utilisés dans la page frontale pour réaliser la fonction d'obtention de l'adresse, à savoir appID, scope (la valeur par défaut est jsapi_address), signType (la valeur par défaut est sha1), addrSign (la chaîne chiffré par sha1 ci-dessus), timeStamp (horodatage comme ci-dessus), nonceStr (chaîne aléatoire comme ci-dessus).
3. Sur la page front-end, utilisez la jsfonction suivante pour terminer l'opération d'obtention de l'adresse de l'utilisateur :
function get_addr() { WeixinJSBridge.invoke('editAddress',{ "appId" : "<?php echo $sign['appId']?>", "scope" : "jsapi_address", "signType" : "sha1", "addrSign" : "<?php echo $sign['addrSign']?>", "timeStamp" : "<?php echo $sign['timeStamp']?>", "nonceStr" : "<?php echo $sign['nonceStr']?>", },function(res){ if(res.err_msg == 'edit_address:ok') { //将地址信息存入数据库 //将地址信息显示在当前页面 document.getElementById("address_info").innerHTML="<b>收件人:"+res.userName+"</b> <b>"+res.telNumber+"</b><br /> 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo; } else{ alert("获取地址失败,请重新点击"); } }); }
À ce stade, le développement de l'utilisation de WeChat pour obtenir l'adresse partagée de l'utilisateur C'est tout.
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!