Heim > Artikel > Backend-Entwicklung > WeChat-Applet füllt Fallstricke PHP-Entwicklung IIS7
Dieser Artikel stellt hauptsächlich das WeChat-Applet vor, um die Fallstricke der PHP-Entwicklung IIS7 im Detail zu beseitigen. Es hat einen gewissen Referenzwert.
Ein Mall-Applet wurde sieben Tage lang entwickelt. Großer Kopf, aber großer Hintern, unvollständige Dokumentation, man muss alles selbst erkunden
Nachdem es online gegangen ist, muss es auf https basieren. Gleichzeitig ist die Version größer als 1.2 , was auf Alibaba Cloud möglich ist. Um ein kostenloses CA-Zertifikat zu beantragen, gibt es viele Tutorials im Internet. Sie können es durch persönliche Tests am 16.04.2018 beantragen, müssen jedoch zufällig darauf klicken Navigieren Sie zur Beantragung des Zertifikats und klicken Sie auf das kostenlose CA-Zertifikat
Windows 2008 R2 über Windows Power. Um die Version auf 1.2 oder höher zu aktualisieren, gibt es im Internet zahlreiche Tutorials
Im Folgenden geht es hauptsächlich um die Fallstricke, die während der Entwicklung auftreten
1: Melden Sie sich zuerst in der Grube an
Rufen Sie session_key und openid ab
https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html
Frontend-Code
wx.login({ success: (loginRes) => { loginRes.code } })
geht über den erhaltenen Code zum Server Warum zum Server gehen und ihn nicht im Frontend vervollständigen?
Im offiziellen Dokument gibt es eine Passage:
Der Sitzungsschlüssel session_key ist der Schlüssel zum Verschlüsseln und Signieren von Benutzerdaten. Um die Datensicherheit der Anwendung selbst zu gewährleisten, sollte der Entwicklerserver den Sitzungsschlüssel weder an das Applet liefern noch diesen Schlüssel an die Außenwelt weitergeben.
Der Server-PHP erhält den Sitzungsschlüssel und die OpenID über https://api.weixin.qq.com/sns/jscode2session
Was den Avatar-Spitznamen des Benutzers usw. betrifft, ist dies möglich über das Frontend abgerufen werden. Die wx.getUserInfo-Schnittstelle erhält
Um zu verhindern, dass die Daten manipuliert werden, stellt WeChat offiziell eine verschlüsselte DatenRückgabewert, der in den verschiedenen auf der folgenden Seite bereitgestellten Sprachen zu finden ist 🎜>ServerseitigDurch Algorithmus freigeschaltet
1: Zahlungsgrube
Ich möchte loben der WeChat-Beamte dafür. Die Dokumente sind wirklich chaotisch, mit einer Seite hier und einer Seite dort, insbesondere im letzten Schritt . Beispielsweise gibt es eine AppID überall, aber sie muss hier großgeschrieben werden.UmständeWenn Sie sich über den Code nicht sicher sind, stellt der Beamte eine Online-Verifizierung zur Verfügung https://pay.weixin.qq.com/wiki/tools/signverify/
Zahlungsschritte
Benutzer initiiert die Zahlung am Frontend -> der Server -> Der Server übermittelt Parameter und erhält sie von der WeChat-Zahlungsschnittstelle (https://api.mch.weixin.qq.com/pay/unifiedorder) prepay_id->Der Server generiert Verifizierungsparameter und sendet sie an den front-end->Das Front-End führt wx.requestPayment aus
Einheitliches Bestelldokument: https://pay.weixin.qq.com/wiki/doc/ api/wxa/wxa_api.php ?chapter=9_1
Nach dem Bestehen des Achten Sie bei der einheitlichen Bestellschnittstelle darauf, dass Sie auf die Groß- und Kleinschreibung achten Funktionen zum Konvertieren von Arrays und Pseudo-Abfragen
Übergeben Sie dann $params an das Frontend, um die wx.requestPayment-Schnittstelle aufzurufenDie folgenden werden auf der PHP-Seite entwickelt. Meine häufig verwendeten Kontosperrfunktionen
$params=array( 'appId'=>'', 'package'=>'prepay_id='.'', 'timeStamp'=>'', 'signType'=>'MD5', 'nonceStr'=>'' ); $params['paySign']=md5Sign($params); unset($params['appId']);
/* by 醉亦逝愁 md5Sign用于小程序服务端签名校验 */ function md5Sign($params){ ksort($params); $stringA=arr2str($params); $stringSignTemp=$stringA.'&key='.'商户key(mch_key)'; $sign=strtoupper(md5($stringSignTemp)); return $sign; } /* by 醉亦逝愁 arr2str用于小程序服务端Array转伪Query */ function arr2str($array){ $string = []; if($array && is_array($array)){ foreach ($array as $key=> $value){ $string[] = $key.'='.$value; } } return implode('&',$string); }
/* by 醉亦逝愁 arr2str用于小程序服务端Array转Xml 用途https://api.mch.weixin.qq.com/pay/unifiedorder */ function arr2xml($arr,$item='root'){ $dom = new DOMDocument("1.0"); $item = $dom->createElement($item); $dom->appendChild($item); foreach ($arr as $key=>$val){ $itemx = $dom->createElement(is_string($key)?$key:"item"); $item->appendChild($itemx); if (!is_array($val)){ $text = $dom->createCDATASection($val); $itemx->appendChild($text); }else { arrayToXml($val,$dom,$itemx); } } return $dom->saveXML($item); }
Die von der https://api.mch.weixin.qq.com/pay/unifiedorder-Schnittstelle zurückgegebene XML wird durch die folgende Funktion zum Array
. Weitere werden später hinzugefügt.
Verwandte Empfehlungen:
$xmlstring=simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA); $data=get_object_vars($xmlstring);
PHP WeChat Public Account Development Cash Red Envelope
,
Das obige ist der detaillierte Inhalt vonWeChat-Applet füllt Fallstricke PHP-Entwicklung IIS7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!