Fenix Wang 5 lat temu
rodzic
commit
e1333f9639

+ 34 - 6
application/newhome/controller/Pay.php

@@ -40,11 +40,12 @@ class Pay extends Controller{
 	public function sdk_notify(){
 	    $data = $this->request->post();
 
+        self::log("sdk_notify ".json_encode($data, JSON_UNESCAPED_UNICODE));
+
 	    $order_id = $data['order_id'];
 	    $pay_money = $data['pay_money'];
 	    $pay_time = $data['pay_time'];
 	    $exinfo = $data['exinfo'];
-	    $role_id = $data['role_id'];
 
 	    if($data['sign'] != md5($order_id.$pay_money.$pay_time.$exinfo."o6knhm0BhXBDVn3D"))
         {
@@ -58,17 +59,22 @@ class Pay extends Controller{
         $iapInfo = Db::name('iap_config')->where(['item_id'=>$item_id])->find();
         if(empty($iapInfo)) return (json(['errno'=>1111, "msg"=>"商品ID错误"]));
 
-        $user = Db::name('user')->where(['id'=>$role_id])->find();
-        if(empty($user)) return (json(['errno'=>1111, 'msg'=>"用户ID错误"]));
+        $user = Db::name('user')->where(['id'=>$user_id])->find();
+        if(empty($user)) return (json(['errno'=>1112, 'msg'=>"用户ID错误"]));
+
+        $exist = Db::name('user_pay')->where(["out_trade_no"=>$order_id])->find();
+        if($exist) return (json(['errno'=>1113, 'msg'=>"订单已经存在"]));
 
         $arr = array();
         $arr['user_id'] = $user_id;
         $arr['pay_id'] = $iapInfo['id'];
         $arr['out_trade_no'] = $order_id;
-        $arr['cost'] = $pay_money;
+        $arr['cost'] = $pay_money/100;
         $arr['create_time'] = date("Y-m-d H:i:s", $pay_time);
         Db::name('user_pay')->insert($arr);
 
+        self::log("pay_save ".json_encode($arr, JSON_UNESCAPED_UNICODE));
+
         return json(['errno'=>1, 'msg'=>""]);
     }
 
@@ -77,13 +83,13 @@ class Pay extends Controller{
         $data = decode($this->request->post());
         $user_id = $data['user_id'];
 
-        $user_pay = Db::name('user_pay')->where(['user_id'=>$user_id])->order('id DESC')->find();
+        $user_pay = Db::name('user_pay')->where(['user_id'=>$user_id, "reward"=>0])->order('id DESC')->find();
         if(!$user_pay)
         {
             return json(['error'=>0]);
         }
 
-        Db::name('user_pay')->update(["reward"=>1])->where(["id"=>$user_pay['id']]);
+        Db::name('user_pay')->where(["id"=>$user_pay['id']])->update(["reward"=>1, "reward_time"=>date("Y-m-d H:i:s")]);
 
         $pay_id = $user_pay['pay_id'];
         $iap_info = Db::name('iap_config')->where(['id'=>$pay_id])->find();
@@ -92,6 +98,7 @@ class Pay extends Controller{
             return json(['error'=>0]);
         }
 
+        self::log("pay_reward ".json_encode($user_pay, JSON_UNESCAPED_UNICODE));
         return json(['error'=>0, "reward"=>$iap_info["reward"]]);
     }
 
@@ -287,5 +294,26 @@ class Pay extends Controller{
         return $xml;
     }
 
+
+
+    public static function log($message, $tag='notify')
+    {
+        $folder = ROOT_PATH.'log/'.$tag;
+        if(!is_dir($folder))
+        {
+            mkdir($folder, 0777, true);
+        }
+
+        $path = $folder.'/'.date('Y_m_d').'.log';
+        if(!file_exists($path))
+        {
+            $fp = fopen($path, "a");
+            flock($fp, LOCK_EX) ;
+            fwrite($fp, "");
+            flock($fp, LOCK_UN);
+            fclose($fp);
+        }
+        error_log(date('Y-m-d H:i:s').' >> '.$message."\r\n", 3, $path);
+    }
 }
 

+ 21 - 3
application/newhome/controller/User.php

@@ -105,7 +105,22 @@ class User extends Controller {
         $data = decode($this->request->post());
 
         $id = $data['u'];
-        $ext_id = $data['e'];
+
+        $arr = explode("|", $data['e']);
+
+        if(count($arr) < 2)
+        {
+            return json(['error'=>1009]);
+        }
+
+        $sdk_id = $arr[0];
+        $ts = $arr[1];
+        $sign = $arr[2];
+
+        if($sign != md5($sdk_id.$ts."CzNLahsrSMBcSJF6"))
+        {
+            return json(['error'=>1009]);
+        }
 
         $res = $this->userModel->getUserByCode($id);
         if(!empty($res['ext_id']))
@@ -126,8 +141,11 @@ class User extends Controller {
         fclose($file);
 
         //更新sdk账号id至新的账号
-        $this->userModel->update(["ext_id"=>""])->where(['ext_id'=>$ext_id]);
-        $this->userModel->update(["ext_id"=>$ext_id])->where(["id"=>$res['id']]);
+        if(!empty($sdk_id))
+        {
+            $this->userModel->where(['ext_id'=>$sdk_id])->update(["ext_id"=>""]);
+            $this->userModel->where(["id"=>$res['id']])->update(["ext_id"=>$sdk_id]);
+        }
 
         return json(['l'=>$info, 'p'=>$res['praise']]);
     }

+ 1 - 1
application/user/model/User.php

@@ -23,7 +23,7 @@ class User extends Model{
 	
 	/* 自动填充设置 begin */
 	protected function setShortAttr(){
-		return shortCode($this->data['uid']);
+		return shortCode($this->data['id']);
 	}
 	
 	protected function setLastIpAttr() {