Example #1
0
 public function postLunbo()
 {
     $options = $this->request()->only(['lb_image1', 'lb_url1', 'lb_title1', 'lb_image2', 'lb_url2', 'lb_title2', 'lb_image3', 'lb_url3', 'lb_title3']);
     try {
         transaction();
         foreach ($options as $key => $option) {
             Option::where('key', $key)->update(['value' => $option]);
         }
         commit();
         return $this->success('保存成功');
     } catch (\Exception $exception) {
         rollback();
     }
     return $this->error('修改失败,请稍后再试');
 }
Example #2
0
function refreshAuctions()
{
    //query creation
    $itemQuery = sprintf("SELECT * FROM user_stocked;");
    //query database
    $databaseConnection = GetDatabaseConnection();
    $itemResult = $databaseConnection->query($itemQuery);
    $output = array();
    if ($itemResult != false) {
        while ($row = $itemResult->fetch_assoc()) {
            array_push($output, $row["iid"]);
        }
    }
    //echo json_encode($output);
    //query creation
    $itemQuery = sprintf("SELECT * FROM supplier_stocked;");
    //query database
    $databaseConnection = GetDatabaseConnection();
    $itemResult = $databaseConnection->query($itemQuery);
    if ($itemResult != false) {
        while ($row = $itemResult->fetch_assoc()) {
            array_push($output, $row["iid"]);
        }
    }
    $itemQuery = sprintf("SELECT * FROM auction_item WHERE iid in ('%s');", implode($output, '\',\''));
    //echo $itemQuery;
    $databaseConnection = GetDatabaseConnection();
    $itemResult = $databaseConnection->query($itemQuery);
    if ($itemResult != false) {
        while ($row = $itemResult->fetch_assoc()) {
            date_default_timezone_set("America/New_York");
            $end = strtotime($row['end_date']);
            $now = time();
            if ($end <= $now) {
                if ($row["bidder"] != null) {
                    transaction($row["iid"], $row["bidder"]);
                } else {
                    endAuction($row["iid"]);
                }
            }
        }
    }
}
 public function NotifyProcess($data, &$msg)
 {
     $notfiyOutput = array();
     if (!array_key_exists("transaction_id", $data)) {
         $msg = "输入参数不正确";
         return false;
     }
     //查询订单,判断订单真实性
     if (!$this->Queryorder($data["transaction_id"])) {
         $msg = "订单查询失败";
         return false;
     }
     //以上的代码都是相同的,以下代码写定制业务逻辑,这里应该写通用订单处理逻辑
     $map = array('order_id' => $data["out_trade_no"], 'pay_status' => 1, 'order_status' => 4);
     $save = array('pay_status' => 2, 'order_status' => 5, 'update_time' => NOW_TIME);
     M('Order')->where($map)->save($save);
     transaction($data["out_trade_no"], $data["total_fee"] / 100, $data["openid"], '旅游订单', '微信扫码');
     return true;
 }
Example #4
0
 /**
  * Bulk save all model in current entity.
  *
  * @return void
  */
 public function save()
 {
     foreach ($this as $model) {
         if ($model instanceof CActiveRecord) {
             if (container()->bound(get_class(container('docoflow.connection')))) {
                 $model->save();
             } else {
                 $transaction = transaction(container('docoflow.connection'));
                 try {
                     $model->save();
                     $transaction->commit();
                 } catch (Exception $e) {
                     $transaction->rollback();
                     throw $e;
                 }
             }
         }
     }
 }
Example #5
0
function request()
{
    global $app;
    $httprequest = new Phalcon\Http\Request();
    $datain = $httprequest->get();
    $data = array();
    foreach ($datain as $key => $value) {
        $data[strtolower($key)] = $value;
    }
    $filter = new \Phalcon\Filter();
    $request = $filter->sanitize($data["request"], array("string", "lower"));
    $response = null;
    switch ($request) {
        case "getcapabilities":
            $response = getCapabilities();
            break;
        case "describefeaturetype":
            $response = describeFeatureType($data);
            break;
        case "getfeatures":
            $response = getFeatures($data);
            break;
        case "delete":
            $response = delete($data);
            break;
        case "create":
            $response = create($data);
            break;
        case "update":
            $response = update($data);
            break;
        case "transaction":
            $response = transaction($data);
            break;
    }
    $app->response->setContentType('application/json; charset=UTF-8')->sendHeaders();
    echo json_encode($response);
}
Example #6
0
 public function postRegister()
 {
     $this->validate($this->request(), array('realname' => 'required', 'mobile' => 'required|size:11|unique:users,mobile', 'sex' => 'required:in:' . array_keys_impload(\App\Enum\User::$sexLang), 'birthday' => 'required|date', 'marriage' => 'required|in:' . array_keys_impload(\App\Enum\User::$marriageLang), 'like' => 'exists:users,user_id'), array('realname.required' => '请填写真实姓名', 'mobile.required' => '请填写手机号', 'mobile.size' => '手机号格式不正确', 'mobile.unique' => '手机号已被注册', 'sex.required' => '请选择您的性别', 'sex.in' => '您填写的性别有误', 'birthday.required' => '请填写您的生日', 'birthday.date' => '您填写的生日格式不正确', 'marriage.required' => '您填写您的婚姻状态', 'marriage.in' => '婚姻状态不正确', 'like.exist' => '您报名的对象不存在'));
     $form = $this->request()->only('realname', 'mobile', 'sex', 'birthday', 'marriage');
     try {
         transaction();
         //创建用户
         $user = User::create($form);
         if ($this->request()->has('like')) {
             //创建喜欢的人
             $user->like()->create(array('like_user_id' => $this->request()->get('like')));
         }
         //创建用户信息
         $user->info()->create(array());
         //创建择偶条件
         $user->object()->create(array('sex' => $user->sex == \App\Enum\User::SEX_FEMALE ? \App\Enum\User::SEX_MALE : \App\Enum\User::SEX_FEMALE));
         commit();
         return $this->rest()->success($user, '报名成功,管理员审核通过后即可登录');
     } catch (\Exception $ex) {
         rollback();
         dd($ex->getMessage());
         return $this->rest()->error('抱歉,报名失败,请稍后再试');
     }
 }
Example #7
0
        $return_url = str_replace('track_checkout.php', 'validate.php', e_SELF);
        $text .= "<input type='hidden' name='currency_code' value='" . $paypal_currency_code . "' />\r\n                    <input type='hidden' name='no_note' value='1' />\r\n                    <input type='hidden' name='lc' value='US' />\r\n                    <input type='hidden' name='notify_url' value = '" . $return_url . "' />\r\n                    <input type='hidden' name='rm' value='2' />\r\n                    <input type='hidden' name='return' value='" . $thanks_page . "' />\r\n                    <input type='hidden' name='custom' value='" . session_id() . "' />\r\n                    <div style='text-align:center';><input class='button' type='submit' value='" . EASYSHOP_TRACK_14 . "' /></div>\r\n              </form></table>";
    }
    // Show contine shoppping button
    $text .= "<br /><br />\r\n\t\t\t\t   <form action='" . e_SELF . "' method='post'>\r\n\t\t\t\t   <div style='text-align:center';>\r\n\t\t\t\t   <input type='hidden' name='target_url' value='" . $_POST['source_url'] . "' />\r\n                   <input type='submit' class='button' value='" . EASYSHOP_TRACK_15 . "' /></a>\r\n                   </div>\r\n\t\t\t\t   </form>";
} else {
    // Client has decided to go back shopping- need to amend paypal_fields status to ES_shopping
    $trans_array = transaction($session_id, 0, 0, "ES_processing");
    // gets all item and fields data into $trans_array
    $trans_array['payment_status'] = "ES_shopping";
    // sets new status
    $trans_array['custom'] = $session_id;
    //just in case it isn't already set!!
    $items_array = unserialize($trans_array['all_items']);
    //function requires a seperate $items_array (future optimisation?)
    transaction("update", $items_array, $trans_array, "ES_shopping");
    header("Location: " . $tp->toDB(urldecode($_POST['target_url'])));
    exit;
}
$text .= "</div> ";
$title = EASYSHOP_TRACK_08;
$ns->tablerender($title, $text);
require_once FOOTERF;
/**            keep this in case I ever figure out why AJAX isn't working for 1.3 :)
    //create the XML headers to tell JS what we want to do
  
    isset($_GET['target'])? $ajax_target = $_GET['target'] : $ajax_target="";
    isset($_GET['source'])? $ajax_source = $_GET['source'] : $ajax_source="";
    isset($_GET['arg'])? $ajax_arg = $_GET['arg'] : $ajax_arg="";

    $response = "<menu_name>".$ajax_target."</menu_name>";
Example #8
0
    case "loan":
        loan();
        break;
    case "loan_money":
        loan_money();
        break;
    case "cloan":
        cloan();
        break;
    case "clear_loan":
        clear_loan();
        break;
    case "chacdetails":
        chacdetails();
        break;
    case "transaction":
        transaction();
        break;
    case "transfer_money":
        transfer_money();
        break;
    case "delete":
        delete();
        break;
    default:
        echo "wrong option";
}
?>
</body>
</html>
Example #9
0
                 }
             } else {
                 // This is a duplicate txn_id - possibly fraudulent - update monitor - send admin email?
                 $fielddata['payment_status'] = "EScheck_dupltxn_" . $fielddata['payment_status'];
                 transaction("FORCE_NEW", $itemdata, $fielddata);
                 fwrite($log, "\n " . EASYSHOP_VAL_13 . "\n \n");
                 // Duplicate txn_id!
             }
         } else {
             // Store transaction and update store monitor of incomplete transaction - send admin an email also?
             $fielddata['payment_status'] = "EScheck_" . $fielddata['payment_status'];
             if (transaction("update", $itemdata, $fielddata, "ES_processing")) {
                 fwrite($log, "\n " . EASYSHOP_VAL_14 . ":" . $fielddata['payment_status'] . "\n \n");
                 // Payment status not 'Completed' status
             } else {
                 transaction("FORCE_NEW", $itemdata, $fielddata);
                 // Payment status not 'Completed' status
                 // LOCAL ENTRY NOT PRESENT!
                 fwrite($log, "\n " . EASYSHOP_VAL_14 . ":" . $fielddata['payment_status'] . "\n\n\t\t\t\t\t" . EASYSHOP_VAL_15 . "\n \n");
             }
         }
         // if logfile is enabled... user must make sure it's secure a future option perhaps
         // fwrite($log, "\n".(print_r($fielddata, true))."\n".(print_r($itemdata, true)));
     } else {
         if (strcmp($res, "INVALID") == 0) {
             // Paypal response 'INVALID'; log for manual investigation
             fwrite($log, "\n " . EASYSHOP_VAL_16 . "\n \n");
         }
     }
 }
 fclose($fp);
Example #10
0
 /**
  * Save a workflow.
  *
  * @return \Docoflow\Models\Workflow
  */
 public function save()
 {
     if (!$this->prepared) {
         $this->prepare();
     }
     $transaction = transaction(container('docoflow.connection'));
     try {
         $newWorkFlowId = $this->createNewWorkFlow();
         $this->createWorkflowDefinition($newWorkFlowId);
         $transaction->commit();
         return $this->workflow;
     } catch (Exception $e) {
         $transaction->rollback();
         throw $e;
     }
 }
Example #11
0
        $dbh = null;
        break;

      case 'POST':
        $query = 'INSERT INTO gakusei (gno, name) VALUES (:gno, :name)';
        transaction($dbh, $query, 'POST');
        break;

      case 'PUT':
        $query = 'UPDATE gakusei SET name = :name WHERE gno = :gno';
        transaction($dbh, $query, 'PUT');
        break;

      case 'DELETE':
        $query = 'DELETE FROM gakusei WHERE gno = :gno';
        transaction($dbh, $query, 'DELETE');
        break;
    }
  } catch (PDOException $e) {
    if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
      $dbh->rollback(); // ロールバック
    }
    print "Error: " . $e->getMessage() . PHP_EOL;
    exit;
  }

  // POST, PUT, DELETEの時に呼び出される関数
  // 複数件の書き込みに対応している
  function transaction($dbh, $query, $method) {
    $handle = fopen('php://input', 'r');
    $json_input = fgets($handle);
Example #12
0
 /**
  * Edit user permissions
  *
  * @param $id
  * @return string
  */
 public function postPermissions($id)
 {
     \ruler()->check($this->permission, ['id' => 'exists:user,user_id'], ['id' => $uuid = f($id, 'uuid')]);
     // Récuperation du model
     /** @var \Models\Business\User $user */
     $user = \FrenchFrogs\Models\Business\User::get($id);
     $query = \query('user_permission as p', ['i.name as interface_name', 'g.user_permission_group_id', 'g.name as group_name', 'p.user_permission_id', 'p.name'])->join('user_permission_group as g', 'p.user_permission_group_id', '=', 'g.user_permission_group_id')->join('user_interface as i', 'i.user_interface_id', '=', 'p.user_interface_id')->orderBy('i.name')->orderBy('g.name')->orderBy('p.name');
     $groups = [];
     $permissions = [];
     foreach ($query->get() as $row) {
         // gestion des interfaces
         if (empty($permissions[$row['interface_name']])) {
             $permissions[$row['interface_name']] = [];
         }
         // gestion des groupes
         if (empty($permissions[$row['interface_name']][$row['user_permission_group_id']])) {
             $groups[$row['user_permission_group_id']] = $row['group_name'];
             // stackage des groupes
             $permissions[$row['interface_name']][$row['user_permission_group_id']] = [];
         }
         // gestion de la permissions
         $permissions[$row['interface_name']][$row['user_permission_group_id']][$row['user_permission_id']] = $row['name'];
     }
     // Formulaire
     $form = \form()->enableRemote();
     $form->setLegend('Permissions : ' . $user->getModel()->name);
     foreach ($permissions as $interface => $group) {
         $form->addTitle($interface);
         foreach ($group as $g => $p) {
             $form->addCheckbox(str_replace('.', '_', $g), $groups[$g], $p)->setAlias('user_permission_id');
         }
     }
     $form->addSubmit('Enregistrer');
     // enregistrement
     if (\request()->has('Enregistrer')) {
         $form->valid(\request()->all());
         if ($form->isValid()) {
             $data = $form->getFilteredAliasValues();
             try {
                 transaction(function () use($user, $data) {
                     $user->setPermissions($data['user_permission_id']);
                 });
                 \js()->success()->closeRemoteModal()->reloadDataTable();
             } catch (\Exception $e) {
                 \js()->error($e->getMessage());
             }
         }
     } else {
         $form->populate(['user_permission_id' => $user->getPermissions()], true);
     }
     return response()->modal($form);
 }
Example #13
0
 /**
  * Save all data in workflow, include all of it's steps, groups, and verificators.
  *
  * @return void
  */
 public function save()
 {
     if ($this->workflow) {
         $transaction = transaction(container('docoflow.connection'));
         try {
             $this->workflow->save();
             if (($steps = $this->steps()) instanceof Step) {
                 $steps->save();
             }
             if (($groups = $this->groups()) instanceof Group) {
                 $groups->save();
             }
             if (($verificators = $this->verificators()) instanceof Verificator) {
                 $verificators->save();
             }
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollback();
             throw $e;
         }
     }
 }
Example #14
0
 public function postAdd(Register $register)
 {
     //验证表单
     $this->validate($this->request(), ['mobile' => 'required|digits:11', 'birthday' => 'required|date', 'sex' => 'required|in:' . array_keys_impload(UserEnum::$sexForm), 'password' => 'required|min:5|max:20', 'password_confirm' => 'required|required_with:password|same:password', 'marital_status' => 'in:' . array_keys_impload(UserEnum::$maritalForm), 'height' => 'digits:3|between:130,210', 'education' => 'in:' . array_keys_impload(UserEnum::$educationForm), 'salary' => 'in:' . array_keys_impload(UserEnum::$salaryForm), 'user_name' => 'required|min:2|max:15|unique:users', 'email' => 'required|email|unique:users']);
     $form = $this->request()->only(['user_name', 'email', 'mobile', 'birthday', 'password', 'marital_status', 'height', 'education', 'salary', 'province', 'city', 'area']);
     try {
         transaction();
         $user = User::create($form);
         $register->delete();
         commit();
         return $this->success('添加成功', $user);
     } catch (\Exception $exp) {
         rollback();
         return $this->error('抱歉,添加失败');
     }
 }
Example #15
0
function request()
{
    global $app;
    $httprequest = new Phalcon\Http\Request();
    $datain = $httprequest->get();
    $data = array();
    foreach ($datain as $key => $value) {
        $data[strtolower($key)] = $value;
    }
    $filter = new \Phalcon\Filter();
    $request = $filter->sanitize($data["request"], array("string", "lower"));
    $response = null;
    switch ($request) {
        case "getcapabilities":
            $response = getCapabilities();
            break;
        case "describefeaturetype":
            $response = describeFeatureType($data);
            break;
        case "getfeatures":
            $response = getFeatures($data);
            break;
        case "delete":
            $response = delete($data);
            break;
        case "create":
            $response = create($data);
            break;
        case "update":
            $response = update($data);
            break;
        case "transaction":
            $response = transaction($data);
            break;
            /* For grouping*/
        /* For grouping*/
        case "getassoclayers":
            $response = getAssocLayers($data);
            break;
        case "getgrouping":
            $response = getGrouping($data);
            break;
        case "describegrouping":
            $response = describeGrouping($data);
            break;
        case "creategrouping":
            $response = createGrouping($data);
            break;
        case "updategrouping":
            $response = updateGrouping($data);
            break;
        case "deletegrouping":
            $response = deleteGrouping($data);
            break;
        case "getFeaturesFk":
            $response = getFeaturesFk($data);
            break;
        case "duplicategrouping":
            $response = duplicateGrouping($data);
            break;
        case "associatedocument":
            $response = associateDocument($data);
            break;
        case "deletedocument":
            $response = deleteDocument($data);
            break;
        case "downloaddocument":
            $response = downloadDocument($data);
            echo $response;
            break;
        case "getdocumentlist":
            $response = getDocumentList($data);
            break;
        case "getdocumentdescription":
            $response = getDocumentDescription($data);
            break;
        default:
            $response = false;
            break;
    }
    $app->response->setContentType('application/json; charset=UTF-8')->sendHeaders();
    echo json_encode($response);
}
 /**
  * [notifyUrl 异步通知]
  * @return [type] [description]
  */
 public function notifyUrl()
 {
     //计算得出通知验证结果
     $alipayNotify = new AlipayNotify($this->alipay_config);
     $verify_result = $alipayNotify->verifyNotify();
     file_put_contents('alipay.log', var_export($verify_result, true), FILE_APPEND);
     file_put_contents('alipay-post.log', var_export($_POST, true), FILE_APPEND);
     if ($verify_result) {
         $out_trade_no = $_POST['out_trade_no'];
         $trade_no = $_POST['trade_no'];
         $total_fee = $_POST['total_fee'];
         $buyer_email = $_POST['buyer_email'];
         $trade_status = $_POST['trade_status'];
         if ($_POST['trade_status'] == 'TRADE_FINISHED') {
             $map = array('order_id' => $out_trade_no, 'pay_status' => 1, 'order_status' => 4);
             $save = array('pay_status' => 2, 'order_status' => 5, 'update_time' => NOW_TIME);
             M('Order')->where($map)->save($save);
             transaction($out_trade_no, $total_fee, $buyer_email, '线上支付', '支付宝');
         } else {
             if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
                 $map = array('order_id' => $out_trade_no, 'pay_status' => 1, 'order_status' => 4);
                 $save = array('pay_status' => 2, 'order_status' => 5, 'update_time' => NOW_TIME);
                 M('Order')->where($map)->save($save);
                 transaction($out_trade_no, $total_fee, $buyer_email, '线上支付', '支付宝');
             }
         }
     } else {
         //验证失败
         echo "fail";
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }
 }
Example #17
0
<?php

set_time_limit(0);
include_once '../server_header.inc';
include_once 'libs/PEAR/Cache_Lite/Lite.php';
include_once 'libs/SQL_Tokenizer.php';
$_REQUEST['q'] = rawurldecode($_REQUEST['q']);
$settings_viewer = new Settings_viewer();
$res = $settings_viewer->get();
$apiKey = $res['data']['api_key'];
$callback = $_GET['jsonp_callback'];
//$array = preg_split("/(\r\n|\n|\r)/", $string);
$response = transaction($_REQUEST['q']);
// Check if $data is set in SELECT section
if (!$data) {
    $data = json_encode($response);
}
if ($callback) {
    echo $callback . '(' . $data . ');';
} else {
    echo $data;
}
/**/
function transaction($sql)
{
    global $response, $apiKey, $data, $basePath;
    $parsedSQL = SqlParser::ParseString($sql)->getArray();
    //$tokens = SqlParser::Tokenize($sql, true);
    if (strpos($sql, ';') !== false) {
        $response['success'] = false;
        $response['message'] = "You can't use ';'. Use the bulk transaction API instead";
Example #18
0
function Main()
{
    global $data;
    $sql = "SELECT \n      subs.*, subs.id as subscriptionid, (TO_DAYS(NOW()) - TO_DAYS(subs.sdate)) as daystopay, subs.member as payerid,\n      prod.type, prod.type, prod.price, prod.period, prod.trial, prod.tax, prod.shipping, prod.name as productname, prod.owner as payeeid,\n      memb.fname as userfname, memb.lname as userlname\n    FROM \n      {$data['DbPrefix']}subscriptions subs LEFT JOIN {$data['DbPrefix']}products prod ON subs.product=prod.id,\n      {$data['DbPrefix']}subscriptions subs2 LEFT JOIN {$data['DbPrefix']}members memb ON subs.owner=memb.id\n    WHERE subs2.id=subs.id AND subs.sdate < NOW()";
    $res = mysql_query($sql);
    if ($res) {
        if (mysql_num_rows($res) > 0) {
            out("Subscriptions to process: " . mysql_num_rows($res));
            out("Working...");
            while ($row = mysql_fetch_array($res)) {
                $amount = $row['shipping'] + $row['tax'] + $row['price'];
                $payrounds = floor($row['daystopay'] / $row['period']);
                $unpaiddays = $row['daystopay'] - floor($row['daystopay'] / $row['period']) * $row['period'];
                $amount = $amount * $payrounds;
                if ($payrounds > 0) {
                    if (select_balance($row['payerid']) >= $amount) {
                        $sql = "UPDATE {$data['DbPrefix']}subscriptions SET ";
                        if ($row['holded'] == 1) {
                            $paydate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $unpaiddays, date("Y")));
                            $sql .= " sdate='{$paydate}',holded=0";
                            SendEmailNotification($row['payerid'], $row['product'], true);
                        } else {
                            $paydate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $unpaiddays, date("Y")));
                            $sql .= " sdate='{$paydate}'";
                        }
                        $sql .= " WHERE id={$row['subscriptionid']}";
                        $rslt = mysql_query($sql);
                        if ($rslt) {
                            $fees = $amount * $data['PaymentPercent'] / 100 + $data['PaymentFees'];
                            transaction($row['payerid'], $row['payeeid'], $amount, $fees, 0, 1, 'Payment for subscription ' . $row['productname'] . ' for ' . $row['userfname'] . " " . $row['userlname'] . ", " . $payrounds * $row['period'] . ' days', '');
                        }
                    } else {
                        $sql = "UPDATE {$data['DbPrefix']}subscriptions SET holded=1 WHERE id={$row['subscriptionid']}";
                        mysql_query($sql);
                        SendEmailNotification($row['payerid'], $row['product'], false);
                    }
                }
            }
        }
    }
    out("Done.");
}
Example #19
0
function update_stock($txn_id = NULL, $phpsessionid = NULL)
{
    global $pref;
    $sqlcheck = new db();
    $trans_array = transaction($phpsessionid, 0, 0, "Completed");
    $items_array = unserialize($trans_array['all_items']);
    $count = 1;
    $temp_array = "";
    while ($items_array["db_id_" . $count]) {
        if ($sqlcheck->db_Select("easyshop_items", "*", "item_id = '" . $items_array["db_id_" . $count] . "'")) {
            while ($row = $sqlcheck->db_Fetch()) {
                if ($row['item_track_stock'] == 2) {
                    // Is this a tracked stock item?
                    if ($row['item_instock'] >= $items_array["quantity" . $count]) {
                        $newstock = $row['item_instock'] - $items_array["quantity_" . $count];
                        if ($row['item_minimum'] == 0 || $row['item_minimum'] == NULL) {
                            // Minimum level is flexible, but with bottom-level 1.
                            $minimum_level = 1;
                        } else {
                            $minimum_level = $row['item_minimum'];
                        }
                        if ($newstock <= $minimum_level && $newstock != 0) {
                            // Minimum level is reached; send e-mail alert
                            ShopMail::easyshop_sendalert($row['item_id'], $newstock, $minimum_level, 1);
                            // Alert-type = 1
                        }
                        if ($newstock == 0) {
                            $sqlcheck->db_Update("easyshop_items", "item_instock = '" . $newstock . "', item_out_of_stock = '2'\r\n\t\t\t\t\t\t\t\t\tWHERE item_id = '" . $items_array["db_id_" . $count] . "'");
                            ShopMail::easyshop_sendalert($row['item_id'], $newstock, $minimum_level, 3);
                            // Alert-type = 3
                        } else {
                            $sqlcheck->db_Update("easyshop_items", "item_instock = '" . $newstock . "'\r\n\t\t\t\t\t\t\t\t\tWHERE item_id = '" . $items_array["db_id_" . $count] . "'");
                        }
                    } else {
                        // There is a problem; client has paid for more items than are in stock
                        // Raise out of stock flag and send email
                        $sqlcheck->db_Update("easyshop_items", "item_instock = '0', item_out_of_stock = '2'\r\n\t\t\t\t\t\t\t\t\tWHERE item_id = '" . $items_array["db_id_" . $count] . "'");
                        ShopMail::easyshop_sendalert($row['item_id'], $newstock, $minimum_level, 2);
                        // Alert-type = 2
                    }
                }
                if ($row['prod_promo_class'] != 255 && $row['prod_promo_class'] != 0 && $trans_array['ipn_user_id'] > 0) {
                    // Auto promotion of user
                    $sqlcheck2 = new db();
                    $sqlcheck3 = new db();
                    require_once e_HANDLER . 'userclass_class.php';
                    $promo_class_name = r_userclass_name($row['prod_promo_class']);
                    $sqlcheck2->db_Select("user", "*", "user_id='" . $trans_array['ipn_user_id'] . "'");
                    if ($row2 = $sqlcheck2->db_Fetch()) {
                        $user_name = $row2['user_name'];
                        $class_extant = explode(',', $row2['user_class']);
                        foreach ($class_extant as $key => $value) {
                            if (intval($value) == 0) {
                                unset($class_extant[$key]);
                            }
                        }
                        if ($row['prod_promo_class'] != 255 && $row['prod_promo_class'] != 0 && !in_array($row['prod_promo_class'], $class_extant)) {
                            $class_extant[] = $row['prod_promo_class'];
                        }
                        $new_array = array_unique($class_extant);
                        sort($new_array);
                        $class_list = implode(',', $new_array);
                        $sqlcheck3->db_Update("user", "user_class='" . $class_list . "' where user_id='" . $trans_array['ipn_user_id'] . "'");
                        $mailto = !(isset($pref['siteadminemail']) && strlen($pref['siteadminemail']) == 0) ? $pref['replyto_email'] : $pref['siteadminemail'];
                        // Keep 0.7.8 compatible
                        $subject = $pref['sitename'] . ": " . EASYSHOP_IPN_30;
                        // [USERNAME] upgraded to class [PROMOCLASS]
                        $subject = str_replace("[USERNAME]", $user_name, $subject);
                        $subject = str_replace("[PROMOCLASS]", $promo_class_name, $subject);
                        $message = EASYSHOP_IPN_31 . "<br /><br />";
                        $message .= EASYSHOP_IPN_32 . "<br /><br />";
                        $message .= EASYSHOP_IPN_33 . "<br />";
                        $message .= "<br />" . EASYSHOP_IPN_34 . " " . $pref['siteurl'];
                        $message .= "<br /><br />&copy; " . date("Y") . " EasyShop";
                        $message = str_replace("[USERNAME]", $row2['user_name'], $message);
                        $message = str_replace("[USERLINK]", SITEURL . "user.php?id." . $trans_array['ipn_user_id'], $message);
                        $message = str_replace("[PROMOCLASS]", r_userclass_name($row['prod_promo_class']), $message);
                        $message = str_replace("[TRANSACTIONID]", $trans_array['txn_id'], $message);
                        $message = str_replace("[PRODUCTPRICE]", $items_array["amount_" . $count], $message);
                        $message = str_replace("[PRODUCTQTY]", $items_array["quantity_" . $count], $message);
                        $message = str_replace("[CURRENCY]", $trans_array['mc_currency'], $message);
                        $message = str_replace("[GROSSAMOUNT]", $trans_array['mc_gross'], $message);
                        $message = str_replace("[PAYMENTDATE]", $trans_array['payment_date'], $message);
                        $message = str_replace("[PRODLINK]", SITEURL . e_PLUGIN . "easyshop/easyshop.php?prod." . $items_array["db_id_" . $count], $message);
                        $message = str_replace("[PRODUCTNAME]", $items_array["item_name_" . $count], $message);
                        $user_message = EASYSHOP_IPN_35;
                        $user_message .= "<br />" . EASYSHOP_IPN_36;
                        $user_message .= "<br />" . EASYSHOP_IPN_34 . " " . $pref['siteurl'];
                        $user_message .= "<br /><br />&copy; " . date("Y") . " EasyShop";
                        $user_message = str_replace("[PRODUCTNAME]", $items_array["item_name_" . $count], $user_message);
                        $user_message = str_replace("[PROMOCLASS]", r_userclass_name($row['prod_promo_class']), $user_message);
                        //ShopMail::easyshop_sendemail($mailto, $subject, $message, $headers2, $attachment_name);
                        if ($row2['user_class'] != $class_list) {
                            // Only send an e-mail if the user_class array actually changed
                            ShopMail::easyshop_sendemail($mailto, $subject, $message, $headers2, $attachment_name);
                            // Mail to admin
                            ShopMail::easyshop_sendemail($row2['user_email'], $subject, $user_message, $headers2, $attachment_name);
                            // Mail to user
                        }
                    }
                }
                $temp_array = array($row['item_id'] => array("item_name" => $items_array["item_name_" . $count], "db_id" => $row['item_id']));
            }
        } else {
            // This item does not exist!!!
            //$sqlcheck -> db_Close();
            return FALSE;
        }
        $count++;
    }
    // Send downloads
    $to_email = $trans_array['payer_email'];
    ShopMail::easyshop_senddownloads($temp_array, $to_email);
    //$sqlcheck -> db_Close();
    return TRUE;
}
 /**
  * 订单修改
  */
 public function edit($order_id = 0)
 {
     if (empty($order_id)) {
         $this->error('非法参数...');
     }
     $Order = M('Order');
     $order_info = $Order->find($order_id);
     if (empty($order_info)) {
         $this->error('订单不存在...');
     }
     $data = array('order_id' => $order_id, 'create_time' => NOW_TIME);
     switch (I('order_status', 1, 'intval')) {
         case '3':
             $data['order_status'] = 3;
             $data['kefu_intro'] = I('kefu_intro');
             $result = $Order->save($data);
             send_sms($order_info['mobile'], array('orderid' => $order_id), 'unOrder');
             break;
         case '4':
             $pay_status = I('pay_status', 1, 'intval');
             if ($pay_status == 2) {
                 $data['order_status'] = 5;
                 transaction($order_id, $order_info['order_price'], UID, '旅游订单', '线下支付');
             } else {
                 $data['order_status'] = 4;
                 send_sms($order_info['mobile'], array('orderid' => $order_id, 'price' => $order_info['order_price']), 'enOrder');
             }
             $data['pay_status'] = $pay_status;
             $data['kefu_intro'] = I('kefu_intro');
             $result = $Order->save($data);
             break;
         case '8':
             $data['order_status'] = 8;
             $data['kefu_intro'] = I('kefu_intro');
             $result = $Order->save($data);
             break;
         case '9':
             $data['order_status'] = 9;
             $data['kefu_intro'] = I('kefu_intro');
             $result = $Order->save($data);
             break;
         default:
             $data['kefu_intro'] = I('kefu_intro');
             $result = $Order->save($data);
             break;
     }
     if ($result) {
         $this->success('成功', U('index'));
     } else {
         $this->error('失败');
     }
 }
function DisableProduct($trans_id)
{
    $transaction_id = transaction($trans_id);
    mysql_query("UPDATE sale_transaction_detail\n\t\t\t\t\t SET    sale_transaction_detail.`status` = 3\n\t\t\t\t\t WHERE  sale_transaction_detail.id       = {$trans_id}");
    $res = mysql_query("SELECT sale_transaction_detail.id\n\t\t\t    \t\t\tFROM   sale_transaction_detail\n\t\t\t    \t\t\tWHERE  sale_transaction_detail.transaction_id={$transaction_id} \n\t\t\t\t\t\t\tAND sale_transaction_detail.status=1");
    $check = mysql_num_rows($res);
    if ($check == 0) {
        mysql_query("UPDATE sale_transaction\n\t\t \t\t\t     SET    sale_transaction.`status` = 3\n\t\t \t\t\t\t WHERE  sale_transaction.id       = {$transaction_id}");
    }
}
Example #22
0
function transactionDispatch($op)
{
    checkPerm('view');
    require_once _lms_ . '/lib/lib.transaction.php';
    if (isset($_POST['back_mod'])) {
        Util::jump_to('index.php?modname=transaction&amp;op=transaction');
    }
    switch ($op) {
        case 'mod':
            modTransaction();
            break;
        case 'del':
            delTransaction();
            break;
        default:
        case 'transaction':
            transaction();
            break;
    }
}
Example #23
0
         }
     }
     // End of cleaning to be checked entries
     // Should we clean ES_shopping/processing entries? -is older than 3 days too little ?!??!?!?
     if ($_GET['report'] == "clean_shop") {
         // Check to clean the shopping entries
         if ($_GET['shop'] != 0) {
             $check_del = transaction("delete", NULL, NULL, "ES_shopping", $cutoff_time, $current_time);
             $check_del ? $result_text .= EASYSHOP_MONITOR_24 . "<br />" : ($result_text .= EASYSHOP_MONITOR_25 . " " . $_GET['days'] . " " . EASYSHOP_MONITOR_26 . "<br />");
         } else {
             $result_text .= EASYSHOP_MONITOR_27 . "<br />";
         }
         // End of cleaning shopping entries
         // Check to clean the processing entries
         if ($_GET['proc'] != 0) {
             $check_del = transaction("delete", NULL, NULL, "ES_processing", $cutoff_time, $current_time);
             $check_del ? $result_text .= EASYSHOP_MONITOR_28 . "<br />" : ($result_text .= EASYSHOP_MONITOR_29 . " " . $_GET['days'] . " " . EASYSHOP_MONITOR_26 . "<br />");
         } else {
             $result_text .= EASYSHOP_MONITOR_30 . "<br />";
         }
         // End of cleaning processing entries
     }
     //End of clean_shop
 }
 // End of cleaning
 // Retrieve the report array
 $report = report();
 $reporttext = "<table class='fborder' width='90%'><tr><td>";
 if (isset($report['Completed']['report_count'])) {
     $completed = "<br /><div onclick='expandit(\"Completed\");'><span class='button'> " . EASYSHOP_MONITOR_31 . " </span></div><br /><span id='Completed' style='display:none;'>";
     for ($i = 1; $i <= $report['Completed']['report_count']; $i++) {
Example #24
0
<?php

require_once "ApiLibrary.php";
session_start();
//Checks if this is running from a request
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'GET') {
    //This checks to see if anything was passed into the parameter userName
    if (!isset($_GET['iid']) || !isset($_GET['creditcard'])) {
        echo json_encode(array("error" => "Missing parameter."));
    } else {
        $_iid = $_GET['iid'];
        $_creditcard = $_GET['creditcard'];
        if (!isset($_SESSION['username']) || $_SESSION['username'] == null) {
            echo json_encode(array("error" => "must be logged in to buy item."));
            return;
        }
        $_buyer = $_SESSION['username'];
        if (isset($_SESSION['supplier']) && $_SESSION['supplier']) {
            echo json_encode(array("error" => "Suppliers may not buy items."));
            return;
        }
        if (chargeCard($_creditcard, $_iid)) {
            echo transaction($_iid, $_buyer);
        } else {
            echo json_encode(array("error" => "Unable to charge credit card."));
        }
    }
}
Example #25
0
 public function getSeedMaleAvatar()
 {
     $FILE = new \Illuminate\Filesystem\Filesystem();
     $files = $FILE->files('/Users/vicens/www/meigui/public/uploads/avatar');
     try {
         transaction();
         foreach ($files as $path) {
             $file = $FILE->name($path) . '.jpg';
             $user = User::where('sex', UserEnum::SEX_MALE)->whereNull('avatar')->first();
             if ($user && !$user->getOriginal('avatar')) {
                 $user->update(array('avatar' => $file));
             }
         }
         commit();
         return '添加成功';
     } catch (\Exception $e) {
         rollback();
         return $e->getMessage();
     }
 }