国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php版新浪支付接口之回調接口筆記

2024-05-04 21:50:10
字體:
來源:轉載
供稿:網友

所謂的新浪回調接口,就是當資金充值成功之后,新浪會通知本網站一個信息來告知已經充值成功,并返回一組成功的數組,我們根據這些數據再進行一個本地數據庫的同步操作,比如更新本地數據庫是否充值成功的狀態,由未支付改為已支付,然后再網站上面進行顯示,還有資金也會進行同步 update,好了,下面夏日博客把日志分享下來,接著上一篇新浪支付新建接口,一個簡單的新浪支付回調接口,這個異步回調的信息是通過日志生成到ftp下面的,根據日志進行本地的更新。

一,先查看日志文件

說明:數據提交到新浪之后會生成新浪日志文件,如下:

  1. {"ctl":"collocation","act":"response_sina","call":"registercreditor","notify_time":"20160317112508","sign_type":"RSA","notify_type":"trade_status_sync","gmt_payment":"20160317111255","trade_status":"PAY_FINISHED","version":"1.0","sign":"ULbWNFkn1DhF1z9M5daaJHKcvlyTCHS1SmH3o7AMwAQnYylMQATfpNXzdloFh5R43cm3MTaTuaAxEddSRckMBzemZ+XlqEcERsu8x6HA0OnIZW5YVOgQhPfnz4lbH3MC4yjxPzq9dQgE//fVLJ+pWnaeVtXJMiyRygohCdX+mT28=","gmt_create":"20160317111254","_input_charset":"utf-8","outer_trade_no":"7L3No20160317111143","trade_amount":"100.00","inner_trade_no":"101145818437424877398","notify_id":"82170f9981b84c40b50a634ed37a2afd"}  

二,打開 /app/lib/module/collocationModule.class.php,查找 response_sina 方法,方法如下:

  1. public function response_sina()  {    
  2.      $content=  $_REQUEST;   
  3.     error_logdate ( "[YmdHis]" ) ."/t" . json_encode($content) . "/r/n", 3, '../'date ( "Y-m-d" ) . '.log1' );   
  4.     $class_name = getCollName();   
  5.     require_once APP_ROOT_PATH."system/collocation/".$class_name."_collocation.php";   
  6.     $collocation_class = $class_name."_collocation";   
  7.     $collocation_object = new $collocation_class();   
  8.     $collocation_code = $collocation_object->SinaNotify($_POST,$_REQUEST);    
  9. }  

三,打開 system/collocation/Sina_collocation.php 文件,查找 SinaNotify 方法,如下:

  1. function SinaNotify($map,$data){   
  2.        // $weibopay->write_log("獲取到refund_status_sync結果通知:單號:".json_encode($map).json_encode($data));   
  3.         ksort ($map);    
  4.         $weibopay = new Weibopay ();   
  5.         error_logdate ( "[YmdHis]" ) ."/t" . json_encode($map).  json_encode($data). "/r/n", 3, '../'date ( "Y-m-d" ) . '.log10' );   
  6.         if ($weibopay->checkSignMsg ($map,@$map ["sign_type"] )) {   
  7.             switch ($map["notify_type"])   
  8.             {       
  9.                 //交易結果通知   
  10.                 case "trade_status_sync":   
  11.                     //投標代收   
  12.                       
  13.                     if($data['call']=='registercreditor'){   
  14.                          
  15.                         require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  16.                             
  17.                          registercreditor_status_sync($map);   
  18.                            
  19.                            
  20.                            
  21.                     }    
  22.                     if($data['call']=='dotrtrade'){   
  23.                         
  24.                         error_logdate ( "[YmdHis]" ) ."/t" . json_encode($map). "/r/n",4, '../'date ( "Y-m-d" ) . '.log4' );   
  25.                         require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  26.                        
  27.                          dotrtrade_status_sync($map);   
  28.                             
  29.                             
  30.                             
  31.                     }   
  32.                     if($data['call']=='dohktrade'){   
  33.                        
  34.                         error_logdate ( "[YmdHis]" ) ."/t" . json_encode($map). "/r/n", 5, '../'date ( "Y-m-d" ) . '.log41' );   
  35.                         require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  36.                             
  37.                          dohktrade_status_sync($map);   
  38.                        
  39.                        
  40.                        
  41.                     }   
  42.                        
  43.                        
  44.                     //按照自己的業務需求獲取對應參數進行保存   
  45.                   //  $weibopay->write_log("獲取到trade_status_sync結果通知:時間:".date("YmdHis"));   
  46.                    // $weibopay->write_log("獲取到trade_status_sync結果通知:單號:".json_encode($_REQUEST));   
  47.                     break;   
  48.                     //交易退款結果通知   
  49.                 case "refund_status_sync":   
  50.                     //按照自己的業務需求獲取對應參數進行保存   
  51.                     $weibopay->write_log("獲取到refund_status_sync結果通知:時間:".date("YmdHis"));   
  52.                     $weibopay->write_log("獲取到refund_status_sync結果通知:單號:".json_encode($_REQUEST));   
  53.                     break;   
  54.                     //充值結果通知   
  55.                 case "deposit_status_sync":   
  56.                     //done   
  57.                     require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  58.                        
  59.                      deposit_status_sync($map);   
  60.                
  61.                     break;   
  62.                     //提現結果通知   
  63.                 case "withdraw_status_sync":   
  64.                     $weibopay->write_log("獲取到batch_trade_status_sync結果通知:時間:".date("YmdHis"));   
  65.                     $weibopay->write_log("獲取到batch_trade_status_sync結果通知:單號:".json_encode($_REQUEST));   
  66.                     require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  67.                         
  68.                      withdraw_status_sync($map);   
  69.                    
  70.                     break;   
  71.                     //批量代付結果通知   
  72.                 case "batch_trade_status_sync":   
  73.                     //按照自己的業務需求獲取對應參數進行保存   
  74.                     $weibopay->write_log("獲取到batch_trade_status_sync結果通知:時間:".date("YmdHis"));   
  75.                     $weibopay->write_log("獲取到batch_trade_status_sync結果通知:單號:".json_encode($_REQUEST));   
  76.                     break;   
  77.                     //審核結果通知   
  78.                 case "audit_status_sync":   
  79.                     require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');   
  80.                        
  81.                     audit_status_sync($map);   
  82.                     //按照自己的業務需求獲取對應參數進行保存   
  83.                     $weibopay->write_log("獲取到audit_status_sync結果通知:時間:".date("YmdHis"));   
  84.                     $weibopay->write_log("獲取到audit_status_sync結果通知:單號:".json_encode($_REQUEST));   
  85.                     break;   
  86.                 default:   
  87.                     $weibopay->write_log("獲取到未知結果通知:時間:".date("YmdHis"));   
  88.                     $weibopay->write_log("獲取到未知結果通知:單號:".json_encode($_REQUEST));   
  89.                     echo "通知類型錯誤!";   
  90.             }   
  91.             // 如果回調成功,需要輸出SUCCESS告知新浪回調服務器,已經收到異步通知。   
  92.             echo 'success';   
  93.         } else {   
  94.             $msg="簽名錯誤 or 非法請求";   
  95.             $weibopay->write_log($msg);   
  96.             die ( "sign error" );   
  97.         }   
  98.     }   
  99.     //資質提價   

四,打開 system/collocation/sina/SinaNotify.php 文件,充值回調。

  1. if($map['trade_status']=='PAY_FINISHED'){   
  2.             $pErrCode = 'MG00000F';   
  3.             $data['pErrCode'] ='MG00000F';   
  4.             $data['pErrMsg'] = 'MG00000F';;   
  5.         }   

五,成功之后進行下面的操作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高平市| 陆良县| 淮阳县| 成武县| 洪雅县| 旬阳县| 杨浦区| 桃园市| 钟祥市| 长子县| 桃源县| 邻水| 夏邑县| 德江县| 兰坪| 罗城| 陆良县| 武川县| 志丹县| 陆川县| 磐安县| 五家渠市| 电白县| 安国市| 武宁县| 丹凤县| 洛浦县| 张家口市| 巴中市| 襄樊市| 射洪县| 富民县| 达尔| 吐鲁番市| 鹤庆县| 富锦市| 皮山县| 鄂尔多斯市| 嫩江县| 固镇县| 陆川县|