|
@@ -8,10 +8,19 @@ class Core
|
|
|
*/
|
|
|
public function updateOrder($order_id, $cash, $desc = '')
|
|
|
{
|
|
|
- $db = Dever::db('pay/order');
|
|
|
- $info = $db->one(array('order_id' => $order_id, 'rand' => time() . rand(1,1000)));
|
|
|
+ $project_id = $this->checkOrder($order_id);
|
|
|
+ if ($project_id) {
|
|
|
+ $info = array();
|
|
|
+ $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['where_id'] = $info['id'];
|
|
|
+
|
|
|
$param['status'] = 2;
|
|
|
$msg = '支付成功';
|
|
|
if ($desc) {
|
|
@@ -20,7 +29,11 @@ class Core
|
|
|
$msg = '支付失败||' . $desc;
|
|
|
}
|
|
|
$this->log($msg, $info);
|
|
|
- $db->update($param);
|
|
|
+
|
|
|
+ if (isset($info['id'])) {
|
|
|
+ $param['where_id'] = $info['id'];
|
|
|
+ $db->update($param);
|
|
|
+ }
|
|
|
|
|
|
$notify = false;
|
|
|
$key = false;
|
|
@@ -40,9 +53,15 @@ 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['cash'])) {
|
|
|
+ $send['pay_cash'] = $info['cash'];
|
|
|
+ }
|
|
|
$send['pay_order_id'] = $order_id;
|
|
|
$send['pay_status'] = $param['status'];
|
|
|
$send['pay_msg'] = $msg;
|
|
@@ -59,7 +78,7 @@ class Core
|
|
|
Dever::load($notify, $send);
|
|
|
}
|
|
|
}
|
|
|
- } elseif(!$info) {
|
|
|
+ } else {
|
|
|
$this->log('支付失败', '错误的订单id:' . $order_id);
|
|
|
}
|
|
|
}
|
|
@@ -69,6 +88,9 @@ class Core
|
|
|
*/
|
|
|
protected function updateOrderParam($order_id, $data)
|
|
|
{
|
|
|
+ if ($this->checkOrder($order_id)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
$db = Dever::db('pay/order');
|
|
|
$info = $db->one(array('order_id' => $order_id, 'status' => 1));
|
|
|
if ($info) {
|
|
@@ -83,6 +105,10 @@ class Core
|
|
|
*/
|
|
|
protected function createOrder($uid, $username, $account_id, $project_id, $product_id, $name, $cash, $type, $order_id = false)
|
|
|
{
|
|
|
+ if ($this->checkOrder($order_id)) {
|
|
|
+ return $order_id;
|
|
|
+ }
|
|
|
+
|
|
|
$state = $order_id;
|
|
|
$db = Dever::db('pay/order');
|
|
|
if (!$state) {
|
|
@@ -113,6 +139,16 @@ class Core
|
|
|
return $order_id;
|
|
|
}
|
|
|
|
|
|
+ public function checkOrder($order_id)
|
|
|
+ {
|
|
|
+ if (strstr($order_id, 'O')) {
|
|
|
+ $array = explode('O', $order_id);
|
|
|
+ return $array[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取回调url
|
|
|
*/
|