Heim  >  Artikel  >  WeChat-Applet  >  PHP-Entwicklungscode für die WeChat-Zahlungsmethode, um die Benutzeradresse zu erhalten

PHP-Entwicklungscode für die WeChat-Zahlungsmethode, um die Benutzeradresse zu erhalten

高洛峰
高洛峰Original
2017-03-21 15:39:261413Durchsuche

Die Funktion zur gemeinsamen Nutzung von Lieferadressen von WeChat Pay besteht hauptsächlich darin, die persönlichen Lieferadressen von WeChat-Benutzern einheitlich zu verwalten, und ihre Lieferadressen können auf alle Entwickler angewendet werden, die sie anrufen können. Die Lieferadresse des Nutzers enthält viele persönliche Informationen, daher muss diese Schnittstelle beantragt werden. Der Antragsweg kann auf der mp-Plattform eingesehen werden.

Die Verwendung von WeChat zum Abrufen von Adressinformationen wird zusammen mit der WeChat-Zahlung angewendet. Sobald die WeChat-Zahlungsanwendung bestanden wurde, können Sie diese Funktion verwenden.

In der WeChat Mall kann durch die Verwendung von WeChat Pay zum Abrufen der Lieferadresse des Benutzers der komplizierte Prozess der Eingabe von Adressinformationen durch Benutzer entfallen und die Benutzererfahrung verbessert werden.

Dies kann jedoch daran liegen, dass es um die Privatsphäre des Benutzers geht. Daher muss sich der Benutzer während der Nutzung aktiv für die Nutzung dieser Funktion entscheiden, und nur durch einen Klickvorgang können wir die Lieferadresse des Benutzers ermitteln. Dies ist etwas, das bezahlt werden muss Aufmerksamkeit auf.

Der Vorgang ist wie folgt:

1. Der Benutzer öffnet die Warenkorbseite, klickt auf „Zur Kasse gehen“ und springt zu einer WeChat-oauth2-Seite unter der Adresse: https://open.weixin .qq.com/connect/oauth2/authorize

2. Die oauth2-Seite leitet den Link zur Abrechnungsseite weiter, verwendet PHP, um den Codeparameter im Link abzurufen, und ruft nach der Verarbeitung den accessToken-Wert ab. Generieren Sie eine Signatur, fügen Sie sie zu einem -Array zusammen und übergeben Sie die -Parameter an die Seite.

3. Die Abrechnungsseite verwendet das Benutzerklick--Ereignis in Kombination mit den in 2 generierten Array-Parametern, um die Funktion zum Abrufen der Adresse abzuschließen. Hier kann es eine Funktion geben, die erhaltene Adresse per Ajax in der Datenbank zu erfassen, so dass sich der Kunde beim nächsten Kauf keine Sorgen mehr darüber machen muss.

Lassen Sie uns über einige Punkte sprechen, auf die im Detail geachtet werden muss:

1. Der Schritt des Sprungs zu WeChat oauth2 scheint aus Sicht des Benutzers nicht viel anders zu sein , aber es gibt viele Dinge im Programm. Der erste sind die Parameter der oauth2-Seite, wobei appid die WeChat-App-ID ist, Redirect_uri die Adresse der Bestellabwicklungsseite nach dem URL-Code ist, Response_Type ein fester Code ist, Scope ein fester SNSapi_base ist und Der Status ist hier optional. Füllen Sie das Feld aus und es gibt ein #wechat_redirect. Das endgültige Aussehen des Links lautet dann:

https://open.weixin.qq.com/connect/oauth2/authorize?appid= APPID&redirect_uri=Order-Abwicklungsadresse&response_type=code&scope =snsapi_base&state=Füllen Sie gerne #wechat_redirect

2 aus. Der Benutzer greift auf diese Adresse zu und wird mit dem auf dieser Seite hinzugefügten Code-Parameter weitergeleitet Beachten Sie, dass das AccessToken zum Abrufen von Benutzerinformationen verwendet wird. Das AccessToken ist nicht dasselbe wie ein anderes Zugriffstoken, das für die Interaktion mit WeChat verwendet wird.

Verwenden Sie die GET-Anfrage, um das AccessToken zu erhalten. Sie können Curl oder file_get_contents verwenden. Die Anforderungsadresse lautet:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APP_SECRET&code=CODE&grant_type=authorization_code;

Da gibt es eine Sache Beachten Sie hier, dass WeChat manchmal beschlagnahmt wird und mehrmals hintereinander die Bestellabwicklungsseite anfordert, was dazu führt, dass das AccessToken ungültig wird und eine besondere Behandlung erforderlich ist.

Die Signaturerstellung unterscheidet sich hier von der Signatur bei WeChat-Zahlungen. Sie ist viel einfacher. Sie verschlüsselt lediglich eine Zeichenfolge im Format: accesstoken=ACCESSTOKEN&appid=APPID&noncestr=32 zufällige Zeichen String×tamp= Zeitstempel&url=URL der aktuellen Seite, und dann sha1verschlüsselt die Zeichenfolge.

Auf der Front-End-Seite muss eine Reihe von Parametern verwendet werden, um die Funktion zum Abrufen der Adresse zu erreichen, nämlich appID, Bereich (Standard ist jsapi_address), signType (Standard ist sha1), addrSign (die Zeichenfolge). verschlüsselt durch sha1 oben), timeStamp (Zeitstempel wie oben), nonceStr (zufällige Zeichenfolge wie oben).

3. Verwenden Sie auf der Front-End-Seite die folgende jsFunktion, um den Vorgang zum Abrufen der Benutzeradresse abzuschließen:

function get_addr()
{
  WeixinJSBridge.invoke('editAddress',{
  "appId" : "<?php echo $sign[&#39;appId&#39;]?>",
  "scope" : "jsapi_address",
  "signType" : "sha1",
  "addrSign" : "<?php echo $sign[&#39;addrSign&#39;]?>",
  "timeStamp" : "<?php echo $sign[&#39;timeStamp&#39;]?>",
  "nonceStr" : "<?php echo $sign[&#39;nonceStr&#39;]?>",
  },function(res){
  if(res.err_msg == &#39;edit_address:ok&#39;)
  {
       
       
      //将地址信息存入数据库
      //将地址信息显示在当前页面
      
      document.getElementById("address_info").innerHTML="<b>收件人:"+res.userName+"</b>   <b>"+res.telNumber+"</b><br /> 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo;
       
 } else{ alert("获取地址失败,请重新点击"); } }); }

An diesem Punkt wird die Entwicklung der Verwendung von WeChat, um die gemeinsame Adresse des Benutzers zu erhalten. Das war's.

Das obige ist der detaillierte Inhalt vonPHP-Entwicklungscode für die WeChat-Zahlungsmethode, um die Benutzeradresse zu erhalten. 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