dever 5 years ago
parent
commit
6a349049ef
2 changed files with 41 additions and 23 deletions
  1. 0 2
      config/base.php
  2. 41 21
      lib/Core.php

+ 0 - 2
config/base.php

@@ -23,8 +23,6 @@ $config['base'] = array
 	),
 
 	'pay_notify' => '',
-
-	'pay_order' => 1,
 );
 
 return $config;

+ 41 - 21
lib/Core.php

@@ -8,29 +8,31 @@ class Core
 	 */
 	public function updateOrder($order_id, $cash, $desc = '')
 	{
-		$state = Dever::config('base', 'project')->pay_order;
-
-		if ($state && $state == -1) {
-			$info = array();
+		$project_id = $this->checkOrder($order_id);
+		if ($project_id) {
 			$info['status'] = 1;
+			$info['order_id'] = $order_id;
+			$info['project_id'] = $project_id;
 		} else {
 			$db = Dever::db('pay/order');
 			$info = $db->one(array('order_id' => $order_id, 'rand' => time() . rand(1,1000)));
 		}
+		
 		if ($info && $info['status']) {
+
+			$param['status'] = 2;
+			$msg = '支付成功';
+			if ($desc) {
+				$param['status'] = 3;
+				$param['status_desc'] = $desc;
+				$msg = '支付失败||' . $desc;
+			}
+			$this->log($msg, $info);
+
 			if (isset($info['id'])) {
 				$param['where_id'] = $info['id'];
-				$param['status'] = 2;
-				$msg = '支付成功';
-				if ($desc) {
-					$param['status'] = 3;
-					$param['status_desc'] = $desc;
-					$msg = '支付失败||' . $desc;
-				}
 				$db->update($param);
 			}
-			
-			$this->log($msg, $info);
 
 			$notify = false;
 			$key = false;
@@ -50,9 +52,18 @@ class Core
 			if ($notify && $key) {
 				
 				$send = array();
-				$send['pay_product_id'] = $info['product_id'];
-				$send['pay_uid'] = $info['uid'];
-				$send['pay_cash'] = $info['cash'];
+				if (isset($info['product_id'])) {
+					$send['pay_product_id'] = $info['product_id'];
+				}
+				if (isset($info['uid'])) {
+					$send['pay_uid'] = $info['uid'];
+				}
+				if (isset($info['uid'])) {
+					$send['pay_uid'] = $info['uid'];
+				}
+				if (isset($info['cash'])) {
+					$send['pay_cash'] = $info['cash'];
+				}
 				$send['pay_order_id'] = $order_id;
 				$send['pay_status'] = $param['status'];
 				$send['pay_msg'] = $msg;
@@ -69,7 +80,7 @@ class Core
 					Dever::load($notify, $send);
 				}
 			}
-		} elseif(!$info) {
+		} else {
 			$this->log('支付失败', '错误的订单id:' . $order_id);
 		}
 	}
@@ -79,8 +90,7 @@ class Core
 	 */
 	protected function updateOrderParam($order_id, $data)
 	{
-		$state = Dever::config('base', 'project')->pay_order;
-		if ($order_id && $state && $state == -1) {
+		if ($this->checkOrder($order_id)) {
 			return false;
 		}
 		$db = Dever::db('pay/order');
@@ -97,10 +107,10 @@ class Core
 	 */
 	protected function createOrder($uid, $username, $account_id, $project_id, $product_id, $name, $cash, $type, $order_id = false)
 	{
-		$state = Dever::config('base', 'project')->pay_order;
-		if ($order_id && $state && $state == -1) {
+		if ($this->checkOrder($order_id)) {
 			return $order_id;
 		}
+		
 		$state = $order_id;
 		$db = Dever::db('pay/order');
 		if (!$state) {
@@ -131,6 +141,16 @@ class Core
 		return $order_id;
 	}
 
+	protected function checkOrder($order_id)
+	{
+		if (strstr($order_id, 'O')) {
+			$array = explode('O', $order_id);
+			return $array[1];
+		}
+
+		return false;
+	}
+
 	/**
 	 * 获取回调url
 	 */