


In diesem Artikel wird der Entwicklungsprozess der Schnittstelle zum Teilen von Lieferadressen unter WeChat-Zahlung vorgestellt.
1. Einführung
Das Teilen von WeChat-Lieferadressen bedeutet, dass der Benutzer eine Webseite im WeChat-Browser öffnet und die Adresse eingibt, um eine schnelle Auswahl zu unterstützen auch hinzugefügt und bearbeitet werden. Diese Adresse ist ein Benutzerattribut und kann auf den Webseiten verschiedener Händler geteilt werden. Unterstützt native Steuerelemente zum Ausfüllen von Adressen und die Adressdaten werden an den Händler weitergeleitet.
Die Adressfreigabe basiert auf der WeChat-JavaScript-API und kann nur im integrierten WeChat-Browser verwendet werden. Aufrufe von anderen Browsern sind ungültig. Gleichzeitig ist zur Unterstützung WeChat Version 5.0 erforderlich. Es wird empfohlen, vor dem Aufruf der Adressschnittstelle die aktuelle Versionsnummer des Benutzers zu ermitteln. Am Beispiel der iPhone-Version können Sie über den Benutzeragenten die folgenden Beispielinformationen zur WeChat-Version abrufen: „Mozilla/5.0(iphone;CPU iphone OS 5_1_1 wie Mac OS“ Anhand der vom Benutzer installierten Versionsnummer von WeChat kann der Händler feststellen, ob Die Versionsnummer ist größer oder gleich 5.0.
Adressformat
Die für die WeChat-Adressfreigabe verwendeten Datenfelder umfassen:
Name des Empfängers
Region, Provinz und kommunale Ebene drei
Detaillierte Adresse
Postleitzahl
Kontaktnummer
Unter diesen entspricht die Region der dreistufigen Landesvorwahl, wie zum Beispiel „Provinz Guangdong-Guangzhou-Stadt-Tianhe-Bezirk“, die entsprechende Postleitzahl ist 510630. Referenzlink für Details: http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
2. OAuth2.0-Autorisierung
Bevor Sie die Lieferadresse erhalten, müssen Sie die Login-Autorisierungsschnittstelle aufrufen, um ein OAuth2.0-Zugriffstoken zu erhalten. Daher muss die Autorisierung einmal durchgeführt werden und das Bestätigungsfeld wird für diese Autorisierung nicht angezeigt.
Das Wesentliche ist, zu
http://www.fangbei.org/wxpay/js_api_call.php
zugreift 🎜>
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=http://www.php.cn/Verwenden Sie dies, um den Code-Parameter abzurufen und das autorisierte access_token und die openid basierend auf dem Code abzurufen. Dieses Zugriffstoken wird für die Schnittstelle zur gemeinsamen Nutzung der Lieferadresse verwendet.
Nachdem alle zu signierenden Parameter entsprechend dem ASCII-Code des Feldnamens von klein nach groß (lexikographisch) sortiert wurden Reihenfolge), verwenden Sie das URL-Schlüssel-Wert-Paarformat (d. h. Schlüssel1=Wert1&Schlüssel2=Wert2...) und werden zu einer Zeichenfolge Zeichenfolge1 verkettet.
Hier ist zu beachten, dass alle Parameternamen während des Signaturvorgangs in Kleinbuchstaben vorliegen. Beispielsweise ist die appId-Zeichenfolge nach der Sortierung appid; Der Signaturalgorithmus wird für string1 verwendet Verwenden Sie die ursprünglichen Werte und es wird keine weitere Verarbeitung durchgeführt. Der spezifische Signaturalgorithmus ist addrSign = SHA1(string1). Das spezifische Beispiel für die Generierung von addrSign wird hier wie folgt angegeben:
appId=wx17ef1eaef46752cb url=http://open.weixin.qq.com/ timeStamp=1384841012 nonceStr=123456 accessToken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRAi: Nach dem Sortieren der Schlüssel-Wert-Paare durch den a-Prozess, string1 wird erhalten:
accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA&appid=wx17ef1eaef46752cb&noncestr=123456×tamp=1384841012&url=http://open.weixin.qq.com/?code=CODE&state=STATEii: Nach dem Signieren durch Prozess b erhalten Sie:
addrSign=SHA1(accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmg h5FRA&appid=wx17ef1eaef46752cb&noncestr=123456×tamp=1384841012&url=http://open.weixin.qq.com/?code=CODE&state=STATE)=ca604c740945587544a9cc25e58dd090f200e6fb
Der Implementierungscode lautet wie folgt
4. Erhalten Sie die Lieferadresse
Bearbeiten Sie die editAddress-Schnittstelle und rufen Sie sie ab der Lieferadresse des Benutzers und rufen Sie diese im Frontend der Webseite auf.
Parameterliste:调用方法如下
参数返回:
返回值 | 说明 |
---|---|
err_msg | edit_address:ok获取编辑收货地址成功 |
edit_address:fail获取编辑收货地址失败 | |
username | 收货人姓名 |
telNumber | 收货人电话 |
addressPostalCode | 邮编 |
proviceFirstStageName | 国标收货地址第一级地址 |
addressCitySecondStageName | 国标收货地址第二级地址 |
addressCountiesThirdStageName | 国标收货地址第三级地址 |
addressDetailInfo | 详细收货地址信息 |
nationalCode | 收货地址国家码 |
五、示例
六、完整代码
<?php /* 方倍工作室 http://www.fangbei.org/ CopyRight 2014 All Rights Reserved */ define('APPID', "wx—b7559b828e3c13e"); define('APPSECRET', "2b21b42d0c497de9a691a6bb5048a601"); class class_weixin { var $appid = APPID; var $appsecret = APPSECRET; //构造函数,获取Access Token public function __construct($appid = NULL, $appsecret = NULL) { if($appid && $appsecret){ $this->appid = $appid; $this->appsecret = $appsecret; } } //生成OAuth2的URL public function oauth2_authorize($redirect_url, $scope, $state = NULL) { $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri=".$redirect_url."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect"; return $url; } //生成OAuth2的Access Token public function oauth2_access_token($code) { $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appid."&secret=".$this->appsecret."&code=".$code."&grant_type=authorization_code"; $res = $this->http_request($url); return json_decode($res, true); } //生成随机字符串 function create_noncestr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i $v){ $bizParameters[strtolower($k)] = $v; } //字典序排序 ksort($bizParameters); //URL键值对拼成字符串 $buff = ""; foreach ($bizParameters as $k => $v){ $buff .= $k."=".$v."&"; } //去掉最后一个多余的& $buff2 = substr($buff, 0, strlen($buff) - 1); //sha1签名 return sha1($buff2); } //HTTP请求(支持HTTP/HTTPS,支持GET/POST) protected function http_request($url, $data = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $output = curl_exec($curl); curl_close($curl); return $output; } }
<?php require_once('wxaddr.class.php'); $weixin = new class_weixin(); $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (!isset($_GET["code"])){ $jumpurl = $weixin->oauth2_authorize($url, "snsapi_base", "fangbei"); Header("Location: $jumpurl"); }else{ $oauth2_access_token = $weixin->oauth2_access_token($_GET["code"]); $access_token = $oauth2_access_token['access_token']; } $timestamp = strval(time()); $noncestr = $weixin->create_noncestr(); $obj['appId'] = $weixin->appid; $obj['url'] = $url; $obj['timeStamp'] = $timestamp; $obj['noncestr'] = $noncestr; $obj['accesstoken'] = $access_token; $signature = $weixin->get_biz_sign($obj); ?> nbsp;html> <meta> <title>获取共享收货地址</title> <meta> <script> function callpay() { WeixinJSBridge.invoke('editAddress',{ "appId" : "<?php echo $obj['appId'];?>", "scope" : "jsapi_address", "signType" : "sha1", "addrSign" : "<?php echo $signature;?>", "timeStamp" : "<?php echo $timestamp;?>", "nonceStr" : "<?php echo $noncestr;?>", },function(res){ alert(JSON.stringify(res)); document.form1.address1.value = res.proviceFirstStageName; document.form1.address2.value = res.addressCitySecondStageName; document.form1.address3.value = res.addressCountiesThirdStageName; document.form1.detail.value = res.addressDetailInfo; document.form1.national.value = res.nationalCode; document.form1.user.value = res.userName; document.form1.phone.value = res.telNumber; document.form1.postcode.value = res.addressPostalCode; document.form1.errmsg.value = res.err_msg; }); } </script>
更多微信支付开发收货地址共享接口 相关文章请关注PHP中文网!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung