好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ThinkPHP框架下微信支付功能總結踩坑筆記

ThinkPHP框架下微信支付功能總結踩坑筆記

熱門標簽:地下城堡2圖九地圖標注 智能電話機器人排名前十名南京 保定crm外呼系統運營商 七魚外呼系統停用嗎 阿里云400電話申請加工單 西區企業怎么做地圖標注入駐 九江外呼系統 抖音有個地圖標注是什么意思 海南人工外呼系統有效果嗎

本文實例講述了ThinkPHP框架下微信支付功能總結。分享給大家供大家參考,具體如下:

摘要

  • 此文主要為個人解決 ThinkPHP3.2.3 下微信支付所遇到的一些坑的解決方案,僅供參考
  • 詳情請參考 原文 : 微信公眾平臺開發教程之ThinkPHP框架下微信支付功能

踩坑記錄

為便于參考,此處附錄部分 weixinpay.class代碼截圖

①. 驗證不嚴謹,損失教訓

  • 補充時間:【2017-01-02】
  • 情況描述

【我尊重你,但不認同你】
  恰逢元旦期間,遭到微信支付被大牛攻破的情況,損失近 80k,好在公司并沒有追究,畢竟一直在趕時間,測試不全面(壓根沒測試人員),慶幸的的對方 24小時未收款,基本全部退還
  問題集中在驗證不足的紅包發放上,不屬于我的編碼范圍,分析后,明白一點,盡全力不要使用前端的數據提交,需要進行后端的數據判斷,考慮盡量多的情況。

②. “total_fee” 參數報錯

  • 補充時間:【2017-02-05】
  • 情況描述

 今天發現一種情況,如果打開微信支付密碼的界面后,未支付而從待付款進行再支付,會有時候報錯一個“total_fee” 參數報錯,找到一種解決方法,即將 “out_trade_no” 以時間戳來重新配置,個人猜測或許是因為一次支付未完成后因為某種原因限制再付款 …

代碼參考如下:

$total_fee = floatval($order_amount)*100;
$order=array(
  'body'=>'testMsg',// 商品描述(需要根據自己的業務修改)
  'total_fee'=>$total_fee,// 訂單金額 以(分)為單位(需要根據自己的業務修改)
  'out_trade_no'=>$out_trade_no.'M'.time(),// 訂單號(需要根據自己的業務修改)
  'product_id'=>'1',// 商品id(需要根據自己的業務修改)
  'trade_type'=>'JSAPI',// JSAPI公眾號支付
  'openid'=>$openid// 獲取到的openid
);

③. 批量支付問題

  • 補充時間:【2017-02-08】
  • 情況描述

  今天在做批量支付時發現,會有 total_fee 報錯
  個人最初簡單的想法是將所有待支付的批量訂單拼接為 state 參數傳入微信,然后再進入 notify() 方法中進行分離整理,此時發現微信有參數長度的限制,大概最多 50 個字符 ,不可以無限制的拼接
  后來的解決方案是進行新訂單的創建,由此新訂單號去查詢關聯的其他批量訂單信息,并且已完成需求

④. 回調函數的注意

  • 情況描述

  注意該路徑必須要與配置文件中的回調路徑一致,此回調函數,是根據微信是否真正完成支付后的數據更新鏈接,一般在此處進行訂單狀態的修改
  先前發現,因為微信服務的設計,會多次回調 notify() 以判斷是否真正的支付成功,而簡單的 update 操作是無法檢測的,為了同自己的平臺相關聯,同理需要進行狀態的判斷,否則不可避免的會多次執行 notify() 中的邏輯處理

注意:

1. 比如,我在此處異步執行的是將訂單號的支付狀態參數由 0 置為 1,判斷如果是已支付訂單,則不再執行后續更新邏輯.
2. 個人測試發現,此處 session 和 cookie 的設置都失效,僅做參考

⑤. D() 方法失效問題

  • 補充時間:【2017-02-09】
  • 情況描述

  今天發現,當在微信完成支付后進行的回調中,針對于 ThinkPHP 框架里的 D() 方法是無法執行的,測試發現同樣的代碼不是這樣微信回調就可以執行,畢竟之前記得是沒有問題的
  此時考慮的解決方法是使用 model 的實例化 new 方法進行曲線優化,發現可行…

⑤. 鬼知道是什么情況

  • 補充時間:【2017-05-02】
  • 情況描述

   這兩天再次進行代碼的迭代,根據自己之前的印象繼續折騰微信支付,發現這可真真的是個坑,我認為剛開通微信支付的服務號很有可能不滿足某些代碼開發需求,配置完成的數據,半天都不能接收到正確的反饋
  待到第二天再準備繼續攻克時發現,未動的代碼又實現了需求
  舉個例子:
  前一天回調的路徑放在 M 模塊下怎么都不執行,手賤參考以前的回調路徑放到 Home下就可以了,首先排除低級的個人代碼問題,因為第二天無聊又改回去了 M,竟然又好了…

補充一部分測試的代碼:

/**
 * 微信支付監聽接口 判斷是否完成了微信支付操作
 */
public function notify(){
  // ↓↓↓下面的file_put_contents是用來簡單查看異步發過來的數據 測試完可以刪除;↓↓↓
  // 獲取xml
  /*$xml=file_get_contents('php://input', 'r');
  //轉成php數組 禁止引用外部xml實體
  libxml_disable_entity_loader(true);
  $data= json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA));
  file_put_contents('.notify.log', $data);*/
  // ↑↑↑上面的file_put_contents是用來簡單查看異步發過來的數據 測試完可以刪除;↑↑↑
  // 導入微信支付sdk
  Vendor('Weixinpay.Weixinpay');
  $wxpay=new \Weixinpay();
  $result = $wxpay->notify();
  if ($result) {
    $out_trade_no = explode('M',$result['out_trade_no'])[0] ;
    $this->toUpdatePayInfo($out_trade_no);
    //TODO 進行頁面跳轉
  }
}

⑥. ThinkPHP 跨模塊調用方法失效問題

  • 補充時間:【2017-05-03】
  • 情況描述

  有種情況的出現是,同樣的代碼在實際支付回調的函數中不執行,然而自己做了個測試路徑傳入固定訂單號發現執行順利,前提是所處環境完全一致(都在線上進行),就如同上次使用D()方法測試可以執行,放在實際的微信回調后就打死也不執行
  而這次吸取了教訓,使用的 new model 實例化方法,因為其中的一個 model 類在初始化時調用了部分數據,結果微信支付回調時卡在實例化這行代碼上,雖然測試的代碼是沒問題的,自己也說不清楚,鬼知道到底是怎么回事
  不過發現 A() 跨模塊方法還是可以用的,至少現在是可行的…
后期發現如下的類似方法也能執行

//TODO 獲取對應訂單的交易價
$cartPayController = new \M\Controller\CartpayController();
$order_amount = $cartPayController->wxPayOrder($out_trade_no,0);

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP微信開發技巧匯總》、《php curl用法總結》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《PHP中json格式數據操作技巧匯總》及《PHP針對XML文件操作技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP遠程連接oracle數據庫操作實現方法圖文詳解
  • ThinkPHP5.0框架使用build 自動生成模塊操作示例
  • PHP生成隨機碼的思路與方法實例探索
  • PHP實現網站應用微信登錄功能詳解
  • PHP之認識(二)關于Traits的用法詳解
  • 微信公眾平臺開發教程④ ThinkPHP框架下微信支付功能圖文詳解
  • 微信公眾平臺開發教程③ PHP實現微信公眾號支付功能圖文詳解
  • ThinkPHP框架實現的微信支付接口開發完整示例
  • 在Ubuntu 18.04上安裝PHP 7.3 7.2和7.0的方法
  • PHP中str_split()函數的用法講解

標簽:九江 昭通 十堰 韶關 涼山 梅河口 遼陽 甘肅

巨人網絡通訊聲明:本文標題《ThinkPHP框架下微信支付功能總結踩坑筆記》,本文關鍵詞  ThinkPHP,框架,下微,信,支付,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ThinkPHP框架下微信支付功能總結踩坑筆記》相關的同類信息!
  • 本頁收集關于ThinkPHP框架下微信支付功能總結踩坑筆記的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 粗大挺进紧致抽搐喷潮h男男视频| 韩国2021理论片在线播放| 肌肉男的巨大粗爽gv网站| 91精品国产丝袜高跟鞋| 亚洲福利一区福利三区| 黑洞韩剧高清在线观看免费完整版 | 男女无遮挡一进一出一哆嗦| 国产精品爽爽久久久| 精品国产一级毛片| 女女(高h)小说| 全部免费毛片在线播放一个| 美女脱了全部衣服的视频| 色婷婷七月| 男女插鸡鸡| 小辣文| 国产色情三级AV电影香| JavaparserHD无码| 大尺度男女激情全过程视频| 女警察一级毛片| 成人免费网站| 精品人妻人人爽久久爽av二区| 60岁丰满的岳?在线播放| 天天影视综合网| 欧美区一区二| 老师撕开奶罩揉吮奶头的背景故事| 成人女人爽到高潮的A片| 美女靠逼视频软件| 我与邻居寡妇的浪| 泡菜电影| 欧美黑人?成人A片| 欧美黑吊大战白妞欧美大片| 国产三级在线视频观看| 性刺激免费视频观看在线观看| 色鬼压床大尺度做爰未删减| 女女h黄动漫| 女人高潮天天躁夜夜躁| 羞羞漫画破解版在线观看| **男同网站chinese| 腿打开点儿就能吃到扇贝了| 巜丰满的欲妇2做爰播放| 国产日韩精品一区在线不卡|