|
@@ -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
|
|
|
*/
|