dever 6 years ago
parent
commit
4b9d1c7e7d
1 changed files with 53 additions and 28 deletions
  1. 53 28
      lib/Set.php

+ 53 - 28
lib/Set.php

@@ -6,36 +6,61 @@ use Dever;
 
 class Set
 {
-    public function updateStatus_api()
+	# 可以自定义token的key
+	public function updateStatus_secure_api_token()
+	{
+		$project_id = Dever::input('pay_project_id');
+		$info = Dever::db('pay/project')->one($project_id);
+		if ($info) {
+			return $info['key'];
+		}
+		return false;
+	}
+
+	# 带有安全验证的接口 需要传入dever_token,可以参考下边的test_order例子
+    public function updateStatus_secure_api()
     {
     	$send = Dever::preInput('pay_');
-    	$project_id = $send['pay_project_id'];
-    	$info = Dever::db('pay/project')->one($project_id);
-    	if (!$info) {
-    		return 'error';
-    	}
-        $key = md5($info['key']);
-        ksort($send);
-        $send['signature'] = md5($key . '&' . http_build_query($send));
-        $signature = Dever::input('signature');
-        if ($send['signature'] == $signature) {
-        	$tk_pic = $send['pay_tk_pic'];
-            $tk_time = $send['pay_tk_time'];
-            $tk_desc = $send['pay_tk_desc'];
-            $order_id = $send['pay_order_id'];
-            $status = $send['pay_status'];
-            $uid = $send['uid'];
-
-            $order = Dever::db('pay/order')->one(array('order_id' => $order_id, 'uid' => $uid));
-
-            if ($order) {
-            	$update['where_id'] = $order['id'];
-            	$update['status'] = $status;
-            	$update['tk_pic'] = $tk_pic;
-            	$update['tk_time'] = $tk_time;
-            	$update['tk_desc'] = $tk_desc;
-            	Dever::db('pay/order')->update($update);
-            }
+        $tk_pic = $send['pay_tk_pic'];
+        $tk_time = $send['pay_tk_time'];
+        $tk_desc = $send['pay_tk_desc'];
+        $order_id = $send['pay_order_id'];
+        $status = $send['pay_status'];
+        $uid = $send['pay_uid'];
+
+        $order = Dever::db('pay/order')->one(array('order_id' => $order_id, 'uid' => $uid));
+
+        if ($order) {
+        	$update['where_id'] = $order['id'];
+        	$update['status'] = $status;
+        	$update['tk_pic'] = $tk_pic;
+        	$update['tk_time'] = $tk_time;
+        	$update['tk_desc'] = $tk_desc;
+        	Dever::db('pay/order')->update($update);
+        }
+
+        return 'ok';
+    }
+
+    # 这是一个带有安全验证的请求例子
+    private function test_order($id, $name, $data)
+    {
+        $status = Dever::param('status', $data);
+
+        if ($status > 0 && $id > 0) {
+            $send = array();
+            $info = Dever::db('journal/order')->one($id);
+            $send['pay_project_id'] = 1;
+            $send['pay_uid'] = $info['uid'];
+            $send['pay_order_id'] = $info['order_id'];
+            $send['pay_tk_pic'] = $info['tk_pic'];
+            $send['pay_tk_time'] = $info['tk_time'];
+            $send['pay_tk_desc'] = $info['tk_desc'];
+            $send['pay_status'] = $status;
+            $send['dever_token'] = 'test';//自定义key,为空则使用系统的token
+
+            # 发送请求
+            Dever::load('pay/lib/set.updateStatus', $send);
         }
     }
 }