|
@@ -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);
|
|
|
+ }
|
|
|
}
|
|
|
|