In diesem Artikel erfahren Sie den Fehler- und Lösungscode für die WeChat-Zahlung JsApi 40163.
Fehler:
Undefinierter Array-Index: openid.
Nach der Überprüfung wurde festgestellt, dass: Die WeChat-Zahlungsautorisierung erhält die openId {"errcode":40163,"errmsg":code wurde verwendet",🎜>Der Grund ist: Der WeChat-Zahlungscode kann nur einmal verwendet werden. und es wird beim zweiten Mal wiederholt. Dieser Fehler tritt bei der Verwendung auf.
Zugehörige Referenz für die Lösung: https://www.e-learn.cn/content/php/1102683
Ich habe die Methode in der Referenz ohne Erfolg ausprobiert und sie daher aus folgenden Gründen neu geschrieben:
Das Problem wurde nach einer Untersuchung gefunden. Es erscheint in:
GetOpenid-Methode in WxPay.JsApiPay.php, der Quellcode lautet:
/** * * 通过跳转获取用户的openid,跳转流程如下: * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code * * @return 用户的openid */ public function GetOpenid() { //通过code获得openid if (!isset($_GET['code']) ){ //触发微信返回code码 $baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $url = $this->__CreateOauthUrlForCode($baseUrl); Header("Location: $url"); exit(); } else { //获取code码,以获取openid $code = $_GET['code']; $openid = $this->getOpenidFromMp($code); return $openid; } }
/** * * 通过跳转获取用户的openid,跳转流程如下: * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code * * @return 用户的openid */ public function GetOpenid() { //通过code获得openid if (!isset($_GET['code']) ){ //触发微信返回code码 $baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $url = $this->__CreateOauthUrlForCode($baseUrl); Header("Location: $url"); exit(); } else { //获取code码,以获取openid $code = $_GET['code']; if(session("?$code")){ $openid = $this->getOpenidFromMp($code); }else{ $openid= session($code); } session($code, $openid);// ###### 2019.03.01 加 为解决code been used return $openid; } }
Das obige ist der detaillierte Inhalt von[PHP] WeChat-Zahlungsfehler JsApi 40163. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!