示例#1
0
文件: hsms.php 项目: herrify/iwebshop
 /**
  * @brief 发送短信
  * @param string $mobile 手机号
  * @param string $content 短信内容
  * @param int $delay 延迟设置
  * @return success or fail
  */
 public static function send($mobile, $content, $delay = 1)
 {
     if (self::$smsInstance == null) {
         $platform = self::getPlatForm();
         switch ($platform) {
             case "zhutong":
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/zhutong.php';
                 require $classFile;
                 self::$smsInstance = new zhutong();
                 break;
             default:
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/haiyan.php';
                 require $classFile;
                 self::$smsInstance = new haiyan();
         }
     }
     if (IValidate::mobi($mobile) && $content) {
         $ip = IClient::getIp();
         if ($ip) {
             if ($delay == 1) {
                 $mobileKey = md5($ip);
                 $sendTime = ISession::get($mobileKey);
                 if ($sendTime && time() - $sendTime < 60) {
                     return false;
                 }
                 ISession::set($mobileKey, time());
             }
             return self::$smsInstance->send($mobile, $content);
         }
     }
     return false;
 }
示例#2
0
 /**
  * @brief 发送短信
  * @param string $mobile
  * @param string $content
  * @return success or fail
  */
 public static function send($mobile, $content)
 {
     if (self::$smsInstance == null) {
         $platform = self::getPlatForm();
         switch ($platform) {
             case "zhutong":
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/zhutong.php';
                 require $classFile;
                 self::$smsInstance = new zhutong();
                 break;
             default:
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/haiyan.php';
                 require $classFile;
                 self::$smsInstance = new haiyan();
         }
     }
     return self::$smsInstance->send($mobile, $content);
 }
示例#3
0
 /**
  * @brief 商户的增加动作
  */
 public function seller_reg()
 {
     $seller_name = IFilter::act(IReq::get('seller_name'));
     $email = IFilter::act(IReq::get('email'));
     $password = IFilter::act(IReq::get('password'));
     $repassword = IFilter::act(IReq::get('repassword'));
     $truename = IFilter::act(IReq::get('true_name'));
     $phone = IFilter::act(IReq::get('phone'));
     $mobile = IFilter::act(IReq::get('mobile'));
     $province = IFilter::act(IReq::get('province'), 'int');
     $city = IFilter::act(IReq::get('city'), 'int');
     $area = IFilter::act(IReq::get('area'), 'int');
     $address = IFilter::act(IReq::get('address'));
     $home_url = IFilter::act(IReq::get('home_url'));
     if ($password == '') {
         $errorMsg = '请输入密码!';
     }
     if ($password != $repassword) {
         $errorMsg = '两次输入的密码不一致!';
     }
     //创建商家操作类
     $sellerDB = new IModel("seller");
     if ($sellerDB->getObj("seller_name = '{$seller_name}'")) {
         $errorMsg = "登录用户名重复";
     } else {
         if ($sellerDB->getObj("true_name = '{$truename}'")) {
             $errorMsg = "商户真实全称重复";
         }
     }
     //操作失败表单回填
     if (isset($errorMsg)) {
         $this->sellerRow = $_POST;
         $this->redirect('seller', false);
         Util::showMessage($errorMsg);
     }
     //待更新的数据
     $sellerRow = array('true_name' => $truename, 'phone' => $phone, 'mobile' => $mobile, 'email' => $email, 'address' => $address, 'province' => $province, 'city' => $city, 'area' => $area, 'home_url' => $home_url, 'is_lock' => 1);
     //商户资质上传
     if (isset($_FILES['paper_img']['name']) && $_FILES['paper_img']['name']) {
         $uploadObj = new PhotoUpload();
         $uploadObj->setIterance(false);
         $photoInfo = $uploadObj->run();
         if (isset($photoInfo['paper_img']['img']) && file_exists($photoInfo['paper_img']['img'])) {
             $sellerRow['paper_img'] = $photoInfo['paper_img']['img'];
         }
     }
     $sellerRow['seller_name'] = $seller_name;
     $sellerRow['password'] = md5($password);
     $sellerRow['create_time'] = ITime::getDateTime();
     $sellerDB->setData($sellerRow);
     $sellerDB->add();
     //短信通知商城平台
     $siteConfig = new Config('site_config');
     if ($siteConfig->mobile) {
         $content = smsTemplate::sellerReg(array('{true_name}' => $truename));
         $result = Hsms::send($mobile, $content);
     }
     $this->redirect('/site/success?message=' . urlencode("申请成功!请耐心等待管理员的审核"));
 }
示例#4
0
 public function ajax_seller_lock()
 {
     $id = IFilter::act(IReq::get('id'));
     $lock = IFilter::act(IReq::get('lock'));
     $sellerObj = new IModel('seller');
     $sellerObj->setData(array('is_lock' => $lock));
     $sellerObj->update("id = " . $id);
     //短信通知状态修改
     $sellerRow = $sellerObj->getObj('id = ' . $id);
     if (isset($sellerRow['mobile']) && $sellerRow['mobile']) {
         $result = $lock == 0 ? "正常" : "锁定";
         $content = smsTemplate::sellerCheck(array('{result}' => $result));
         $result = Hsms::send($sellerRow['mobile'], $content);
     }
 }
示例#5
0
 /**
  * @brief 商品发货接口
  * @param string $order_id 订单id
  * @param array $order_goods_relation 订单与商品关联id
  * @param int $sendor_id 操作者id
  * @param string $sendor 操作者所属 admin,seller
  */
 public static function sendDeliveryGoods($order_id, $order_goods_relation, $sendor_id, $sendor = 'admin')
 {
     $order_no = IFilter::act(IReq::get('order_no'));
     $paramArray = array('order_id' => $order_id, 'user_id' => IFilter::act(IReq::get('user_id'), 'int'), 'name' => IFilter::act(IReq::get('name')), 'postcode' => IFilter::act(IReq::get('postcode'), 'int'), 'telphone' => IFilter::act(IReq::get('telphone')), 'province' => IFilter::act(IReq::get('province'), 'int'), 'city' => IFilter::act(IReq::get('city'), 'int'), 'area' => IFilter::act(IReq::get('area'), 'int'), 'address' => IFilter::act(IReq::get('address')), 'mobile' => IFilter::act(IReq::get('mobile')), 'freight' => IFilter::act(IReq::get('freight'), 'float'), 'delivery_code' => IFilter::act(IReq::get('delivery_code')), 'delivery_type' => IFilter::act(IReq::get('delivery_type')), 'note' => IFilter::act(IReq::get('note'), 'text'), 'time' => ITime::getDateTime(), 'freight_id' => IFilter::act(IReq::get('freight_id'), 'int'));
     switch ($sendor) {
         case "admin":
             $paramArray['admin_id'] = $sendor_id;
             $adminDB = new IModel('admin');
             $sendorData = $adminDB->getObj('id = ' . $sendor_id);
             $sendorName = $sendorData['admin_name'];
             $sendorSort = '管理员';
             break;
         case "seller":
             $paramArray['seller_id'] = $sendor_id;
             $sellerDB = new IModel('seller');
             $sendorData = $sellerDB->getObj('id = ' . $sendor_id);
             $sendorName = $sendorData['true_name'];
             $sendorSort = '加盟商户';
             break;
     }
     //获得delivery_doc表的对象
     $tb_delivery_doc = new IModel('delivery_doc');
     $tb_delivery_doc->setData($paramArray);
     $deliveryId = $tb_delivery_doc->add();
     //订单对象
     $tb_order = new IModel('order');
     $tbOrderRow = $tb_order->getObj('id = ' . $order_id);
     //如果支付方式为货到付款,则减少库存
     if ($tbOrderRow['pay_type'] == 0) {
         //减少库存量
         self::updateStore($order_goods_relation, 'reduce');
     }
     //更新发货状态
     $orderGoodsDB = new IModel('order_goods');
     $orderGoodsRow = $orderGoodsDB->getObj('is_send = 0 and order_id = ' . $order_id, 'count(*) as num');
     $sendStatus = 2;
     //部分发货
     if (count($order_goods_relation) >= $orderGoodsRow['num']) {
         $sendStatus = 1;
         //全部发货
     }
     foreach ($order_goods_relation as $key => $val) {
         //商家发货检查商品所有权
         if (isset($paramArray['seller_id'])) {
             $orderGoodsData = $orderGoodsDB->getObj("id = " . $val);
             $goodsDB = new IModel('goods');
             $sellerResult = $goodsDB->getObj("id = " . $orderGoodsData['goods_id'] . " and seller_id = " . $paramArray['seller_id']);
             if (!$sellerResult) {
                 $goodsDB->rollback();
                 die('发货的商品信息与商家不符合');
             }
         }
         $orderGoodsDB->setData(array("is_send" => 1, "delivery_id" => $deliveryId));
         $orderGoodsDB->update(" id = {$val} ");
     }
     //更新发货状态
     $tb_order->setData(array('distribution_status' => $sendStatus, 'send_time' => ITime::getDateTime()));
     $tb_order->update('id=' . $order_id);
     //生成订单日志
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $sendorName, 'action' => '发货', 'result' => '成功', 'note' => '订单【' . $order_no . '】由【' . $sendorSort . '】' . $sendorName . '发货', 'addtime' => date('Y-m-d H:i:s')));
     $sendResult = $tb_order_log->add();
     //获取货运公司
     $freightDB = new IModel('freight_company');
     $freightRow = $freightDB->getObj('id = ' . $paramArray['freight_id']);
     //发送短信
     $replaceData = array('{user_name}' => $paramArray['name'], '{order_no}' => $order_no, '{sendor}' => '[' . $sendorSort . ']' . $sendorName, '{delivery_company}' => $freightRow['freight_name'], '{delivery_no}' => $paramArray['delivery_code']);
     $mobileMsg = smsTemplate::sendGoods($replaceData);
     Hsms::send($paramArray['mobile'], $mobileMsg, 0);
     //同步发货接口,如支付宝担保交易等
     if ($sendResult && $sendStatus == 1) {
         sendgoods::run($order_id);
     }
 }
示例#6
0
 /**
  * @brief 商品批量发货接口
  * @param string $order_id 订单id
  * @param array $order_goods_relation 订单与商品关联id
  * @param int $sendor_id 操作者id
  * @param string $sendor 操作者所属 admin,seller
  */
 public static function batchSendDeliveryGoods($order_id, $order_goods_relation, $sendor_id, $sendor = 'admin', $paramArray = array())
 {
     $order_no = IFilter::act(IReq::get('order_no'));
     switch ($sendor) {
         case "admin":
             $paramArray['admin_id'] = $sendor_id;
             $adminDB = new IModel('admin');
             $sendorData = $adminDB->getObj('id = ' . $sendor_id);
             $sendorName = $sendorData['admin_name'];
             $sendorSort = '管理员';
             break;
         case "seller":
             $paramArray['seller_id'] = $sendor_id;
             $sellerDB = new IModel('seller');
             $sendorData = $sellerDB->getObj('id = ' . $sendor_id);
             $sendorName = $sendorData['true_name'];
             $sendorSort = '加盟商户';
             break;
     }
     //获得delivery_doc表的对象
     $tb_delivery_doc = new IModel('delivery_doc');
     $tb_delivery_doc->setData($paramArray);
     $deliveryId = $tb_delivery_doc->add();
     //更新发货状态
     $orderGoodsDB = new IModel('order_goods');
     $orderGoodsRow = $orderGoodsDB->getObj('is_send = 0 and order_id = ' . $order_id, 'count(*) as num');
     $sendStatus = 2;
     //部分发货
     if (count($order_goods_relation) >= $orderGoodsRow['num']) {
         $sendStatus = 1;
         //全部发货
     }
     foreach ($order_goods_relation as $key => $val) {
         $orderGoodsDB->setData(array("is_send" => 1, "delivery_id" => $deliveryId));
         $orderGoodsDB->update(" id = {$val} ");
     }
     //更新发货状态
     $tb_order = new IModel('order');
     $tb_order->setData(array('distribution_status' => $sendStatus, 'send_time' => ITime::getDateTime()));
     $tb_order->update('id=' . $order_id);
     //生成订单日志
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $sendorName, 'action' => '发货', 'result' => '成功', 'note' => '订单【' . $order_no . '】由【' . $sendorSort . '】' . $sendorName . '发货', 'addtime' => date('Y-m-d H:i:s')));
     $sendResult = $tb_order_log->add();
     //获取货运公司
     $freightDB = new IModel('freight_company');
     $freightRow = $freightDB->getObj('id = ' . $paramArray['freight_id']);
     //发送短信
     $replaceData = array('{user_name}' => $paramArray['name'], '{order_no}' => $order_no, '{sendor}' => '[' . $sendorSort . ']' . $sendorName, '{delivery_company}' => $freightRow['freight_name'], '{delivery_no}' => $paramArray['delivery_code']);
     $mobileMsg = smsTemplate::sendGoods($replaceData);
     Hsms::send($paramArray['mobile'], $mobileMsg);
     //同步发货接口,如支付宝担保交易等
     if ($sendResult && $sendStatus == 1) {
         sendgoods::run($order_id);
     }
 }