日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于微信支付报错

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于微信支付报错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近兩周一直在做網站的微信支付,期間遇到好多個問題,而最坑的問題,應該就是一個exit引發的坑案。

其實上周微信支付就已經調通了,在測試環境測試,沒有什么大的問題,完美。但是提交到內測環境之后,便一直報錯undefied index:prepay_id. ?
我的action是這么寫的:

<span style="white-space:pre"> </span>header('content-type:text/html;charset=utf-8');$wxconfig = \Yii::$app->params['weixinpay'];$request = Yii::$app->request;<span style="white-space:pre"> </span>$param = $request->get();$jsApi = new tradepay\weixin\JsApiPub($wxconfig);$openid = 0;if (!isset($_GET['code'])){//觸發微信返回code碼$url = $jsApi->createOauthUrlForCode( urlencode( $wxconfig['JS_API_CALL_URL'] .'?' .http_build_query( $param ) ) );Header("Location: $url");? <span style="white-space:pre"> </span><span style="color:#ff0000;">exit();(問題便是出在這里)</span>}else{//獲取code碼,以獲取openid$code = $_GET['code'];$jsApi->setCode($code);$openid = $jsApi->getOpenId();} ? ? ? .....

<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"> </span>$unifiedOrder->setParameter("notify_url",\Yii::$app ->params['apiAddress'].$wxconfig['NOTIFY_URL']);//異步通知回調地址 $unifiedOrder->setParameter("trade_type","JSAPI");//交易類型try{$prepay_id = $unifiedOrder->getPrepayId();}catch( \Exception $e ){$this->redirect_message('f', $e ->getMessage(), 3, Yii::$app->request->baseUrl.'/order/index');}$jsApi->setPrepayId($prepay_id); $jsApiParameters = $jsApi->getParameters();return $this->render('proc',['jsApiParameters'=>$jsApiParameters]);</span> 上面第一步是為了獲取code的,因為他是跳轉過去的,所以想當然的以為header跳轉了,就沒事了,可是PHP代碼是會繼續執行下面的代碼的,至于為什么在測試環境沒有報這個錯,或許是因為測試地址跳轉比較快吧。也就是因為PHP代碼會繼續執行,導致往下執行的時候,沒有獲取到微信生成的預支付訂單編號,undefied index:prepay_id這個BUG也就出來了。細節決定成敗啊,想做一個好的程序員,還要更加細心才行啊。希望能幫助到需要的同學吧。

總結

以上是生活随笔為你收集整理的关于微信支付报错的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。