Beispiel #1
0
 /**
  * @param $requestName
  * @param callable $callback
  * @return mixed
  */
 public function send($requestName, \Closure $callback = null)
 {
     $request = $this->requestFactory->create($requestName);
     if ($callback) {
         $callback($request);
     }
     // validate request
     $request->validateRequest();
     $cacertUrl = __DIR__ . '/../cacert/' . $this->cacertFileName;
     $apiResponse = $this->sender->send($request, $cacertUrl);
     return $request->handleResponse($apiResponse);
 }
Beispiel #2
0
 /**
  * Create a new instance and populate its properties with JSON data
  * @param array $jsonData
  * @return \moosend\Models\Campaign
  */
 public static function withJSON(array $jsonData)
 {
     $instance = new self();
     $instance->ID = $jsonData['ID'];
     $instance->Name = $jsonData['Name'];
     $instance->Subject = $jsonData['Subject'];
     $instance->WebLocation = $jsonData['WebLocation'];
     $instance->HTMLContent = $jsonData['HTMLContent'];
     $instance->PlainContent = $jsonData['PlainContent'];
     $instance->Sender = Sender::withJSON($jsonData['Sender']);
     $instance->DeliveredOn = $jsonData['DeliveredOn'];
     $instance->ReplyToEmail = Sender::withJSON($jsonData['ReplyToEmail']);
     $instance->CreatedOn = $jsonData['CreatedOn'];
     $instance->UpdatedOn = $jsonData['UpdatedOn'];
     $instance->ScheduledFor = $jsonData['ScheduledFor'];
     $instance->Timezone = $jsonData['Timezone'];
     $instance->FormatType = $jsonData['FormatType'];
     $instance->ABCampaignData = ABCampaignData::withJSON($jsonData['ABCampaignData']);
     $instance->MailingList = MailingList::withJSON($jsonData['MailingList']);
     $instance->ConfirmationTo = $jsonData['ConfirmationTo'];
     $instance->Status = $jsonData['Status'];
     if (isset($jsonData['Segment'])) {
         $instance->Segment = Segment::withJSON($jsonData['Segment']);
     }
     $instance->IsTransactional = $jsonData['IsTransactional'];
     return $instance;
 }
Beispiel #3
0
 public function send()
 {
     $sender = new Sender($this->apiKey);
     $responseBody = $sender->send($this->message);
     $response = new Response($this->message, $responseBody);
     foreach ($response->getUpdate() as $oldId => $newId) {
         $this->updateRegistrationIds($oldId, $newId);
     }
     foreach ($response->getRemove() as $id) {
         $this->removeInvalidRegistrationId($id);
     }
     foreach ($response->getUnavailable() as $id) {
         $this->unavailableRegistration($id);
     }
     return $responseBody;
 }
Beispiel #4
0
 /**
  * Create a new instance and populate its properties with JSON data
  * @param array $jsonData
  * @return \moosend\Models\ABCampaignData
  */
 public static function withJSON($jsonData)
 {
     $instance = new self();
     $instance->ID = $jsonData['ID'];
     $instance->SubjectB = $jsonData['SubjectB'];
     $instance->PlainContentB = $jsonData['PlainContentB'];
     $instance->HTMLContentB = $jsonData['HTMLContentB'];
     $instance->WebLocationB = $jsonData['WebLocationB'];
     $instance->SenderB = Sender::withJSON($jsonData['SenderB']);
     $instance->HoursToTest = $jsonData['HoursToTest'];
     $instance->ListPercentage = $jsonData['ListPercentage'];
     $instance->ABCampaignType = $jsonData['ABCampaignType'];
     $instance->ABWinnerSelectionType = $jsonData['ABWinnerSelectionType'];
     $instance->DeliveredOnA = $jsonData['DeliveredOnA'];
     $instance->DeliveredOnB = $jsonData['DeliveredOnB'];
     return $instance;
 }
Beispiel #5
0
 function do_add_new($f3, $args)
 {
     $req = f3()->get('POST');
     //parent::getReq();
     if (empty($req['name'])) {
         return parent::_return(8002, array('msg' => '姓名未填寫!!'));
     }
     if (empty($req['email'])) {
         return parent::_return(8002, array('msg' => 'Email 未填寫!!'));
     }
     if (empty($req['message'])) {
         return parent::_return(8002, array('msg' => '訊息未填寫!!'));
     }
     fContact::insert($req);
     f3()->set('name', $req['name']);
     f3()->set('email', $req['email']);
     f3()->set('message', nl2br($req['message']));
     $tp = \Template::instance();
     $content = $tp->render('mail/contact.html');
     $sent = Sender::sendmail($req['type'] . '通知', $content, f3()->get('webmaster'));
     return parent::_return(1, array('pid' => $obj->id, 'msg' => '感謝您~~'));
 }
Beispiel #6
0
include_once 'Sender.php';
/**
 * 接口测试类
 * 
 * 正式调用时订单、商品信息必须要严格填写。
 * @var
 */
//  $service = new Service();
$config = new Config();
$order = new OrderStatus();
//$order -> setOrderNo($_POST["orderNo"]);      // 设置订单编号
//$order -> setOrderNo($_GET["orderNo"]);
$a = rand(0, 999999);
$b = rand(1, 100000);
$c = rand(0, 999999);
$orderno = $a + $b . $c;
$order->setOrderNo($orderno);
$order->setUpdateTime("2012-04-06 20:09:09");
// 设置订单更新时间,如果没有下单时间,要提前对接人提前说明
$order->setFeedback("NDgwMDB8dGVzdA==");
// 测试时使用"101",正式上线之后活动id必须要从cookie中获取
$order->setOrderStatus("active");
// 设置订单状态
$order->setPaymentStatus("1");
// 设置支付状态
$order->setPaymentType("支付宝");
// 支付方式
//var_dump(get_object_vars($order));
$sender = new Sender();
$sender->setOrderStatus($order);
$sender->sendorderStatus();
Beispiel #7
0
 public function ProcessSMS()
 {
     require_once "Twilio.php";
     $sms_sender_id = Yii::app()->functions->getOptionAdmin('sms_sender_id');
     $sms_account_id = Yii::app()->functions->getOptionAdmin('sms_account_id');
     $sms_token = Yii::app()->functions->getOptionAdmin('sms_token');
     $nexmo_sender_id = Yii::app()->functions->getOptionAdmin('nexmo_sender_id');
     $nexmo_key = Yii::app()->functions->getOptionAdmin('nexmo_key');
     $nexmo_secret = Yii::app()->functions->getOptionAdmin('nexmo_secret');
     $nexmo_use_curl = Yii::app()->functions->getOptionAdmin('nexmo_use_curl');
     $sms_provider = Yii::app()->functions->getOptionAdmin('sms_provider');
     $clickatel_user = Yii::app()->functions->getOptionAdmin('clickatel_user');
     $clickatel_password = Yii::app()->functions->getOptionAdmin('clickatel_password');
     $clickatel_api_id = Yii::app()->functions->getOptionAdmin('clickatel_api_id');
     $clickatel_use_curl = Yii::app()->functions->getOptionAdmin('clickatel_use_curl');
     $nexmo_use_unicode = Yii::app()->functions->getOptionAdmin('nexmo_use_unicode');
     $clickatel_use_unicode = Yii::app()->functions->getOptionAdmin('clickatel_use_unicode');
     $clickatel_sender = Yii::app()->functions->getOptionAdmin('clickatel_sender');
     $privatesms_username = Yii::app()->functions->getOptionAdmin('privatesms_username');
     $privatesms_password = Yii::app()->functions->getOptionAdmin('privatesms_password');
     $privatesms_sender = Yii::app()->functions->getOptionAdmin('privatesms_sender');
     /*dump($sms_sender_id);
     		dump($sms_account_id);
     		dump($sms_token);*/
     $db_ext = new DbExt();
     $stmt = "\n\t\tSELECT * FROM\n\t\t{{sms_broadcast_details}}\n\t\tWHERE\n\t\tstatus IN ('pending')\n\t\tORDER BY id ASC\n\t\tLIMIT 0,50\n\t\t";
     if ($res = $db_ext->rst($stmt)) {
         foreach ($res as $val) {
             dump($val);
             //$available_credit=Yii::app()->functions->getMerchantSMSCredit(Yii::app()->functions->getMerchantID());
             $available_credit = Yii::app()->functions->getMerchantSMSCredit($val['merchant_id']);
             dump($available_credit);
             if ($available_credit >= 1) {
                 //if ( !empty($sms_sender_id) && !empty($sms_account_id) && !empty($sms_token)){
                 $raw = '';
                 $msg = '';
                 if ($sms_provider == "nexmo") {
                     $Nexmo = new Nexmo();
                     $Nexmo->key = $nexmo_key;
                     $Nexmo->secret = $nexmo_secret;
                     $Nexmo->sender = $nexmo_sender_id;
                     $Nexmo->to = $val['contact_phone'];
                     $Nexmo->message = $val['sms_message'];
                     $Nexmo->is_curl = $nexmo_use_curl;
                     if ($nexmo_use_unicode == 1) {
                         $Nexmo->unicode = true;
                     }
                     try {
                         $raw = $resp = $Nexmo->sendSMS();
                         $msg = "process";
                     } catch (Exception $e) {
                         $msg = $e->getMessage();
                     }
                 } elseif ($sms_provider == "clickatell") {
                     $Clickatell = new Clickatell();
                     $Clickatell->user = $clickatel_user;
                     $Clickatell->password = $clickatel_password;
                     $Clickatell->api_id = $clickatel_api_id;
                     $Clickatell->is_curl = $clickatel_use_curl;
                     $Clickatell->to = $val['contact_phone'];
                     $Clickatell->message = $val['sms_message'];
                     if ($clickatel_use_unicode == 1) {
                         $Clickatell->unicode = true;
                     }
                     $Clickatell->sender = $clickatel_sender;
                     try {
                         $raw = $resp = $Clickatell->sendSMS();
                         $msg = "process";
                     } catch (Exception $e) {
                         $msg = $e->getMessage();
                     }
                 } elseif ($sms_provider == "private") {
                     $obj = new Sender("103.16.101.52", "80", $privatesms_username, $privatesms_password, $privatesms_sender, $val['sms_message'], $val['contact_phone'], "0", "1");
                     $resp = $obj->Submit();
                     if (preg_match("/1701/i", $resp)) {
                         $raw = $resp;
                         $msg = "process";
                     } else {
                         $errors['1702'] = "Invalid URL Error, This means that one of the parameters was not\n\t\t\tprovided or left blank";
                         $errors['1703'] = "Invalid value in username or password field";
                         $errors['1704'] = 'Invalid value in "type" field';
                         $errors['1705'] = "Invalid Message";
                         $errors['1706'] = "Invalid Destination";
                         $errors['1707'] = "Invalid Source (Sender)";
                         $errors['1708'] = 'Invalid value for "dlr" field';
                         $errors['1709'] = "User validation failed";
                         $errors['1710'] = "Internal Error";
                         $errors['1025'] = "Insufficient Credit";
                         $resp_temp = explode("|", $resp);
                         if (is_array($resp_temp) && count($resp_temp) >= 1) {
                             $code_error = $resp_temp[0];
                         } else {
                             $code_error = $resp;
                         }
                         $raw = $resp;
                         if (array_key_exists($code_error, $errors)) {
                             $msg = $errors[$code_error];
                         } else {
                             $msg = "Undefined response from api.";
                         }
                     }
                 } else {
                     $twilio = new Twilio();
                     $twilio->_debug = false;
                     $twilio->sid = $sms_account_id;
                     $twilio->auth = $sms_token;
                     $twilio->data['From'] = $sms_sender_id;
                     $twilio->data['To'] = $val['contact_phone'];
                     $twilio->data['Body'] = $val['sms_message'];
                     if ($resp = $twilio->sendSMS()) {
                         $raw = $twilio->getSuccessXML();
                         $msg = "process";
                     } else {
                         $msg = $twilio->getError();
                     }
                 }
                 //} else $msg=Yii::t("default","Admin SMS Settings Invalid");
             } else {
                 $msg = Yii::t("default", "No SMS Credit");
             }
             $params = array('status' => $msg, 'gateway_response' => $raw, 'date_executed' => date('c'), 'gateway' => $sms_provider);
             $db_ext->updateData("{{sms_broadcast_details}}", $params, 'id', $val['id']);
         }
     } else {
         echo "<p>No records to process</p>";
     }
 }
 public static function readTransaction($str_xml)
 {
     // Parser
     $parser = new xmlParser($str_xml);
     // <transaction>
     $data = $parser->getResult('transaction');
     $transaction = new Transaction();
     // <transaction> <lastEventDate>
     if (isset($data["lastEventDate"])) {
         $transaction->setLastEventDate($data["lastEventDate"]);
     }
     // <transaction> <date>
     if (isset($data["date"])) {
         $transaction->setDate($data["date"]);
     }
     // <transaction> <code>
     if (isset($data["code"])) {
         $transaction->setCode($data["code"]);
     }
     // <transaction> <reference>
     if (isset($data["reference"])) {
         $transaction->setReference($data["reference"]);
     }
     // <transaction> <type>
     if (isset($data["type"])) {
         $transaction->setType(new TransactionType($data["type"]));
     }
     // <transaction> <status>
     if (isset($data["status"])) {
         $transaction->setStatus(new TransactionStatus($data["status"]));
     }
     if (isset($data["paymentMethod"]) && is_array($data["paymentMethod"])) {
         // <transaction> <paymentMethod>
         $paymentMethod = new PaymentMethod();
         // <transaction> <paymentMethod> <type>
         if (isset($data["paymentMethod"]['type'])) {
             $paymentMethod->setType(new PaymentMethodType($data["paymentMethod"]['type']));
         }
         // <transaction> <paymentMethod> <code>
         if (isset($data["paymentMethod"]['code'])) {
             $paymentMethod->setCode(new PaymentMethodCode($data["paymentMethod"]['code']));
         }
         $transaction->setPaymentMethod($paymentMethod);
     }
     // <transaction> <grossAmount>
     if (isset($data["grossAmount"])) {
         $transaction->setGrossAmount($data["grossAmount"]);
     }
     // <transaction> <discountAmount>
     if (isset($data["discountAmount"])) {
         $transaction->setDiscountAmount($data["discountAmount"]);
     }
     // <transaction> <feeAmount>
     if (isset($data["feeAmount"])) {
         $transaction->setFeeAmount($data["feeAmount"]);
     }
     // <transaction> <netAmount>
     if (isset($data["netAmount"])) {
         $transaction->setNetAmount($data["netAmount"]);
     }
     // <transaction> <extraAmount>
     if (isset($data["extraAmount"])) {
         $transaction->setExtraAmount($data["extraAmount"]);
     }
     // <transaction> <installmentCount>
     if (isset($data["installmentCount"])) {
         $transaction->setInstallmentCount($data["installmentCount"]);
     }
     if (isset($data["items"]['item']) && is_array($data["items"]['item'])) {
         $items = array();
         $i = 0;
         if (isset($data["items"]['item'][0])) {
             foreach ($data["items"]['item'] as $key => $value) {
                 $item = self::parseTransactionItem($value);
                 $items[$i] = $item;
                 $i++;
             }
         } else {
             $items[0] = self::parseTransactionItem($data["items"]['item']);
         }
         // <transaction> <items>
         $transaction->setItems($items);
     }
     if (isset($data["sender"])) {
         // <transaction> <sender>
         $sender = new Sender();
         // <transaction> <sender> <name>
         if (isset($data["sender"]["name"])) {
             $sender->setName($data["sender"]["name"]);
         }
         // <transaction> <sender> <email>
         if (isset($data["sender"]["email"])) {
             $sender->setEmail($data["sender"]["email"]);
         }
         if (isset($data["sender"]["phone"])) {
             // <transaction> <sender> <phone>
             $phone = new Phone();
             // <transaction> <sender> <phone> <areaCode>
             if (isset($data["sender"]["phone"]["areaCode"])) {
                 $phone->setAreaCode($data["sender"]["phone"]["areaCode"]);
             }
             // <transaction> <sender> <phone> <number>
             if (isset($data["sender"]["phone"]["number"])) {
                 $phone->setNumber($data["sender"]["phone"]["number"]);
             }
             $sender->setPhone($phone);
         }
         $transaction->setSender($sender);
     }
     if (isset($data["shipping"]) && is_array($data["shipping"])) {
         // <transaction> <shipping>
         $shipping = new Shipping();
         // <transaction> <shipping> <type>
         if (isset($data["shipping"]["type"])) {
             $shipping->setType(new ShippingType($data["shipping"]["type"]));
         }
         // <transaction> <shipping> <cost>
         if (isset($data["shipping"]["cost"])) {
             $shipping->setCost($data["shipping"]["cost"]);
         }
         if (isset($data["shipping"]["address"]) && is_array($data["shipping"]["address"])) {
             // <transaction> <shipping> <address>
             $address = new Address();
             // <transaction> <shipping> <address> <street>
             if (isset($data["shipping"]["address"]["street"])) {
                 $address->setStreet($data["shipping"]["address"]["street"]);
             }
             // <transaction> <shipping> <address> <number>
             if (isset($data["shipping"]["address"]["number"])) {
                 $address->setNumber($data["shipping"]["address"]["number"]);
             }
             // <transaction> <shipping> <address> <complement>
             if (isset($data["shipping"]["address"]["complement"])) {
                 $address->setComplement($data["shipping"]["address"]["complement"]);
             }
             // <transaction> <shipping> <address> <city>
             if (isset($data["shipping"]["address"]["city"])) {
                 $address->setCity($data["shipping"]["address"]["city"]);
             }
             // <transaction> <shipping> <address> <state>
             if (isset($data["shipping"]["address"]["state"])) {
                 $address->setState($data["shipping"]["address"]["state"]);
             }
             // <transaction> <shipping> <address> <district>
             if (isset($data["shipping"]["address"]["district"])) {
                 $address->setDistrict($data["shipping"]["address"]["district"]);
             }
             // <transaction> <shipping> <address> <postalCode>
             if (isset($data["shipping"]["address"]["postalCode"])) {
                 $address->setPostalCode($data["shipping"]["address"]["postalCode"]);
             }
             // <transaction> <shipping> <address> <country>
             if (isset($data["shipping"]["address"]["country"])) {
                 $address->setCountry($data["shipping"]["address"]["country"]);
             }
             $shipping->setAddress($address);
         }
         // <transaction> <shipping>
         $transaction->setShipping($shipping);
     }
     return $transaction;
 }
Beispiel #9
0
$pro->setCategory("asdf");
// 设置商品类型
$pro->setCommissionType("A");
// 设置佣金类型,如:普通商品 佣金比例是10%、佣金编号(可自行定义然后通知双方商务)A
$pro->setAmount("1");
// 设置商品数量
$pro->setPrice("3000");
// 设置商品价格
$pro1 = new Product();
// $pro1 -> setOrderNo($order -> getOrderNo());
$pro1->setProductNo("1002");
$pro1->setName("测试商品5");
$pro1->setCategory("a");
$pro1->setCommissionType("B");
$pro1->setAmount("3");
$pro1->setPrice("100");
$pro2 = new Product();
// $pro2 -> setOrderNo($order -> getOrderNo());
$pro2->setProductNo("1003");
$pro2->setName("测试商品4");
$pro2->setCategory("2");
$pro2->setCommissionType("B");
$pro2->setAmount("5");
$pro2->setPrice("500");
$products = array($pro, $pro1, $pro2);
// 实现商品信息集合
$order->setProducts($products);
//var_dump(get_object_vars($order));
$sender = new Sender();
$sender->setOrder($order);
$sender->sendOrder();
 * so if you have any question -> ask me on m.anzawi2013@gmail.com
 * or visit my blog on http://www.phptricks.org
 * 
 * 
 */
if (isset($_POST['addNewUser'])) {
    $post_ = escape($_POST);
    $errors = array();
    if (!preg_match("/^[a-zA-Z_\\-.0-9]/", $post_['UserName'])) {
        $errors[] = "the username must be Latin characters , Numbers and ( . , - , _ ) charcters  ONLY ";
    }
    if (!filter_var($post_['UserEmail'], FILTER_VALIDATE_EMAIL)) {
        $errors[] = "invalid email address";
    }
    if (!count($errors)) {
        $send = new Sender();
        if ($send->sendThanksTemplateAndActivationKey($post_['UserName'], $post_['UserEmail'])) {
            echo "Added Successfuly ... See your Email ....";
        } else {
            echo implode('<br>', $send->getErrors());
        }
    } else {
        echo implode('<br>', $errors);
    }
}
?>

<form method="POST">
    User Name: <input name="UserName" type="text"> 
    <br><br>
    User Email: <input name="UserEmail" type="text">
 public function perform()
 {
     if (isset($this->args['delay'])) {
         $now = new \DateTime();
         $delay = \DateTime::createFromFormat('U', $this->args['delay']);
         if ($delay > $now) {
             Client::enqueueFromJobArgs($this->args);
             return;
         }
     }
     $response = Sender::send(Message::fromArray($this->args['message']), $this->args['serverApiKey'], $this->args['gcmUrl'], isset($this->args['nextDelay']) ? $this->args['nextDelay'] : 1);
     /**
      * Response can be:
      *  - DateTime: When to next retry sending the message.
      *  - Response: Valid response that must be processed.
      *  - Integer:  Exponential Back off.
      */
     if ($response instanceof \DateTime) {
         $this->args['delay'] = $response->format('U');
         Client::enqueueFromJobArgs($this->args);
     } elseif ($response instanceof Response) {
         $failed = $response->getFailedIds();
         foreach ($failed as $error => $group) {
             switch ($error) {
                 case 'Unavailable':
                     $message = $this->args['message'];
                     $message['registration_ids'] = [];
                     foreach ($group as $id => $item) {
                         $message['registration_ids'][] = $id;
                     }
                     Client::enqueueFromJobArgs(['serverApiKey' => $this->args['serverApiKey'], 'gcmUrl' => $this->args['gcmUrl'], 'message' => $message]);
                     break;
                 case 'InternalServerError':
                     foreach ($group as $item) {
                         throw new PhpGcmQueueException('GCM\\DefaultSendJob->perform - Unknown Error: ' . $item, PhpGcmQueueException::UNKNOWN_ERROR);
                     }
                     break;
                 default:
                     /**
                      * The following error messages should remove the Registration IDs from records.
                      *  - InvalidRegistration
                      *  - NotRegistered
                      */
                     /**
                      * The following error messages are malformed requests:
                      *  - MissingRegistration
                      *  - InvalidPackageName
                      *  - MismatchSenderId
                      *  - InvalidDataKey
                      */
                     /**
                      * The follow error messages are throttling (immediately stop sending, do not retry):
                      *  - DeviceMessageRate Exceeded
                      *  - TopicsMessageRate Exceeded
                      */
                     /**
                      * The follow error messages should never occur since they are explicitly tested for:
                      *  - MessageTooBig
                      *  - InvalidTtl
                      */
                     break;
             }
         }
         $this->response = $response;
     } elseif (is_numeric($response)) {
         $this->args['delay'] = \DateTime::createFromFormat('U', strtotime('now +' . (int) $response . ' seconds'))->format('U');
         $this->args['nextDelay'] = $response * 2;
         Client::enqueueFromJobArgs($this->args);
     }
 }
Beispiel #12
0
 public function index()
 {
     $this->load->language('module/smsapi');
     $this->document->setTitle($this->language->get('heading_title'));
     $this->load->model('setting/setting');
     $this->load->model('catalog/smsapi');
     $this->load->model('localisation/order_status');
     $this->load->model('sale/customer');
     $data['logged_in'] = false;
     $data['smsapi_username'] = $this->model_catalog_smsapi->get_settings()[0]['smsapi_username'];
     $data['smsapi_password'] = $this->model_catalog_smsapi->get_settings()[0]['smsapi_password'];
     $data['sender'] = $this->model_catalog_smsapi->get_settings()[0]['sender'];
     $data['new_order'] = $this->model_catalog_smsapi->get_settings()[0]['new_order'];
     $data['new_order_message'] = $this->model_catalog_smsapi->get_settings()[0]['new_order_message'];
     $data['special_chars'] = $this->model_catalog_smsapi->get_settings()[0]['special_chars'];
     $data['fast'] = $this->model_catalog_smsapi->get_settings()[0]['fast'];
     $data['change_order_status'] = $this->model_catalog_smsapi->get_settings()[0]['change_order_status'];
     $data['admin_phone'] = $this->model_catalog_smsapi->get_settings()[0]['admin_phone'];
     $data['customers'] = $this->model_sale_customer->getCustomers();
     $data['history'] = $this->model_catalog_smsapi->get_history();
     if (!empty($data['smsapi_username'])) {
         $login = new Login($data['smsapi_username'], $data['smsapi_password']);
         $sender = new Sender($data['smsapi_username'], $data['smsapi_password'], NULL, $this->model_catalog_smsapi->get_settings()[0], $this->language->get('--DEFAULT--'));
         $balance = new Balance($data['smsapi_username'], $data['smsapi_password']);
         $data['logged_in'] = $login->logged_in();
         $this->error['warning'] = $this->language->get($balance->get_error());
         if ($data['logged_in']) {
             $data['senders'] = $sender->select_sender();
             $data['balance'] = $balance->get_balance();
             $data['ecoCount'] = $balance->getEcoCount();
             $data['proCount'] = $balance->getProCount();
             $data['mmsCount'] = $balance->getMmsCount();
             $data['vmsGsmCount'] = $balance->getVmsGsmCount();
             $data['vmsLandCount'] = $balance->getVmsLandCount();
         }
     }
     $statuses = $this->model_localisation_order_status->getOrderStatuses();
     $localStatusList = $this->model_catalog_smsapi->get_statuses();
     $sharedStatuses = [];
     foreach ($statuses as $status) {
         if (isset($localStatusList[$status['order_status_id']])) {
             $sharedStatuses[$status['order_status_id']] = $localStatusList[$status['order_status_id']];
             if ($localStatusList[$status['order_status_id']]['description'] != $status['name']) {
                 $localStatusList[$status['order_status_id']]['description'] = $status['name'];
                 $this->model_catalog_smsapi->update_status_name($status);
             }
         }
     }
     $statusToRemoveList = array_diff_key($localStatusList, $sharedStatuses);
     $this->model_catalog_smsapi->remove_statuses($statusToRemoveList);
     $this->model_catalog_smsapi->save_statuses($statuses, $this->language->get('order_status'));
     $data['statuses'] = $this->model_catalog_smsapi->get_statuses_simple();
     if (isset($this->request->post['save'])) {
         $this->model_setting_setting->editSetting('smsapi', $this->request->post);
         $this->session->data['success'] = $this->language->get('text_success');
         $settings['sender'] = $this->request->post['sender'];
         $settings['new_order'] = $this->request->post['newOrder'];
         $settings['new_order_message'] = $this->request->post['newOrderMessage'];
         $settings['special_chars'] = $this->request->post['specialChars'];
         $settings['fast'] = $this->request->post['fast'];
         $settings['payment'] = $this->request->post['payment'];
         $settings['posting_payment'] = $this->request->post['postingPayment'];
         $settings['change_order_status'] = $this->request->post['changeOrderStatus'];
         $settings['check_list'] = $this->request->post['check_list'];
         $settings['status_descriptions'] = $this->request->post['status_descriptions'];
         $settings['admin_phone'] = $this->request->post['admin_phone'];
         foreach ($settings['status_descriptions'] as $status_id => $description) {
             $checked = isset($settings['check_list'][$status_id]) ? true : false;
             $this->model_catalog_smsapi->update_status($status_id, $description, $checked);
         }
         $this->model_catalog_smsapi->update_settings($settings);
         //            $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
         $this->response->redirect(HTTP_SERVER . 'index.php?route=module/smsapi&token=' . $this->session->data['token']);
     }
     if (isset($this->request->post['change'])) {
         $settings['smsapi_username'] = $this->request->post['username'];
         $settings['smsapi_password'] = $this->request->post['password'];
         $login = new Login($settings['smsapi_username'], $settings['smsapi_password']);
         if ($login->logged_in()) {
             $this->model_catalog_smsapi->update_api($settings);
             $this->response->redirect(HTTP_SERVER . 'index.php?route=module/smsapi&token=' . $this->session->data['token']);
         } else {
             $this->error['warning'] = $this->language->get($login->get_error());
         }
     }
     if (isset($this->request->post['send'])) {
         $data['sender'] = $this->request->post['sender'];
         $data['definedRecipient'] = $this->request->post['definedRecipient'];
         $data['message'] = $this->request->post['message'];
         $data['recipient'] = $this->request->post['recipient'];
         $options = array('special_chars' => $data['special_chars'], 'fast' => $data['fast']);
         $sms = new Sms($options, $data['sender'], $data['smsapi_username'], $data['smsapi_password']);
         if (!empty($data['recipient'])) {
             $result = $sms->send($data['recipient'], $data['message'], $data['sender']);
         } else {
             $result = $sms->send($data['definedRecipient'], $data['message'], $data['sender']);
         }
         if (is_string($result)) {
             $this->error['warning'] = $result;
         } else {
             $this->session->data['success'] = $this->language->get('sent');
         }
     }
     // Assign the language data for parsing it to view
     $data['heading_title'] = $this->language->get('heading_title');
     $data['general_settings'] = $this->language->get('general_settings');
     $data['account_settings'] = $this->language->get('account_settings');
     $data['account_in_smsapi'] = $this->language->get('account_in_smsapi');
     $data['username'] = $this->language->get('username');
     $data['password'] = $this->language->get('password');
     $data['change'] = $this->language->get('change');
     $data['broadcaster'] = $this->language->get('broadcaster');
     $data['sms_options'] = $this->language->get('sms_options');
     $data['replace_special_chars'] = $this->language->get('replace_special_chars');
     $data['send_fast'] = $this->language->get('send_fast');
     $data['owner_number'] = $this->language->get('owner_number');
     $data['insert_owner_number'] = $this->language->get('insert_owner_number');
     $data['inform_owner'] = $this->language->get('inform_owner');
     $data['sms_message'] = $this->language->get('sms_message');
     $data['inform_client'] = $this->language->get('inform_client');
     $data['yes'] = $this->language->get('yes');
     $data['no'] = $this->language->get('no');
     $data['service'] = $this->language->get('service');
     $data['smsapi_balance'] = $this->language->get('smsapi_balance');
     $data['smsapi_history'] = $this->language->get('smsapi_history');
     $data['smsapi_send'] = $this->language->get('smsapi_send');
     $data['smsapi_settings'] = $this->language->get('smsapi_settings');
     $data['messages'] = $this->language->get('messages');
     $data['Land.'] = $this->language->get('Land.');
     $data['api_history'] = $this->language->get('api_history');
     $data['no_history'] = $this->language->get('no_history');
     $data['send_sms_message'] = $this->language->get('send_sms_message');
     $data['defined_recipient'] = $this->language->get('defined_recipient');
     $data['number'] = $this->language->get('number');
     $data['client'] = $this->language->get('client');
     $data['sms_recipient'] = $this->language->get('recipient');
     $data['commas_information'] = $this->language->get('commas_information');
     $data['not_logged_in'] = $this->language->get('not_logged_in');
     $data['connect'] = $this->language->get('connect');
     $data['not_connected'] = $this->language->get('not_connected');
     $data['change_save'] = $this->language->get('change_save');
     $data['var_customer'] = $this->language->get('var_customer');
     $data['var_number'] = $this->language->get('var_number');
     $data['var_total_price'] = $this->language->get('var_total_price');
     $data['var_status'] = $this->language->get('var_status');
     $data['var_phone'] = $this->language->get('var_phone');
     $data['text_edit'] = $this->language->get('text_edit');
     $data['text_enabled'] = $this->language->get('text_enabled');
     $data['text_disabled'] = $this->language->get('text_disabled');
     $data['text_content_top'] = $this->language->get('text_content_top');
     $data['text_content_bottom'] = $this->language->get('text_content_bottom');
     $data['text_column_left'] = $this->language->get('text_column_left');
     $data['text_column_right'] = $this->language->get('text_column_right');
     $data['entry_code'] = $this->language->get('entry_code');
     $data['entry_layout'] = $this->language->get('entry_layout');
     $data['entry_position'] = $this->language->get('entry_position');
     $data['entry_status'] = $this->language->get('entry_status');
     $data['entry_sort_order'] = $this->language->get('entry_sort_order');
     $data['save_changes'] = $this->language->get('save_changes');
     $data['button_save'] = $this->language->get('button_save');
     $data['button_cancel'] = $this->language->get('button_cancel');
     $data['button_add_module'] = $this->language->get('button_add_module');
     $data['button_remove'] = $this->language->get('button_remove');
     // This Block returns the warning if any
     if (isset($this->error['warning'])) {
         $data['error_warning'] = $this->error['warning'];
     } else {
         $data['error_warning'] = '';
     }
     if (isset($this->session->data['success'])) {
         $data['success'] = $this->session->data['success'];
         unset($this->session->data['success']);
     } else {
         $data['success'] = '';
     }
     // This Block returns the error code if any
     if (isset($this->error['code'])) {
         $data['error_code'] = $this->error['code'];
     } else {
         $data['error_code'] = '';
     }
     // Making of Breadcrumbs to be displayed on site
     $data['breadcrumbs'] = array();
     $data['breadcrumbs'][] = array('text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false);
     $data['breadcrumbs'][] = array('text' => $this->language->get('text_module'), 'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => ' :: ');
     $data['breadcrumbs'][] = array('text' => $this->language->get('heading_title'), 'href' => $this->url->link('module/smsapi', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => ' :: ');
     $data['action'] = $this->url->link('module/smsapi', 'token=' . $this->session->data['token'], 'SSL');
     // URL to be directed when the save button is pressed
     $data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL');
     // URL to be redirected when cancel button is pressed
     if (isset($this->request->post['smsapi_text_field'])) {
         $data['smsapi_text_field'] = $this->request->post['smsapi_text_field'];
     } else {
         $data['smsapi_text_field'] = $this->config->get('smsapi_text_field');
     }
     if (isset($this->request->post['smsapi_status'])) {
         $data['smsapi_status'] = $this->request->post['smsapi_status'];
     } else {
         $data['smsapi_status'] = $this->config->get('smsapi_status');
     }
     $data['header'] = $this->load->controller('common/header');
     $data['column_left'] = $this->load->controller('common/column_left');
     $data['footer'] = $this->load->controller('common/footer');
     $this->response->setOutput($this->load->view('module/smsapi.tpl', $data));
 }
 /**
  * Sets the Sender, party that will be sending the money
  * @param String $name
  * @param String $email
  * @param String $areaCode
  * @param String $number
  */
 public function setSender($name, $email = null, $areaCode = null, $number = null)
 {
     $param = $name;
     if (is_array($param)) {
         $this->sender = new Sender($param);
     } elseif ($param instanceof Sender) {
         $this->sender = $param;
     } else {
         $sender = new Sender();
         $sender->setName($param);
         $sender->setEmail($email);
         $sender->setPhone(new Phone($areaCode, $number));
         $this->sender = $sender;
     }
 }
Beispiel #14
0
 public function testReportSender() {
   $this->assertEquals('test', Sender::currentContext());
 }
Beispiel #15
0
    {
        $notification =& $this->_dispatcher->post($this, 'onFoo', 'Some Info...');
        echo "notification::foo is {$notification->foo}\n";
    }
}
/**
 * example observer
 */
class Receiver
{
    public $foo;
    function notify(&$notification)
    {
        echo "Received notification\n";
        echo "Receiver::foo is {$this->foo}\n";
        $notification->foo = 'bar';
    }
}
$dispatcher = Event_Dispatcher::getInstance();
$sender = new Sender($dispatcher);
$receiver = new Receiver();
$receiver->foo = 42;
$lambda = function (&$notification) use($receiver) {
    echo "Function callback called!\n";
    $receiver->notify(&$notification);
};
// make sure you are using an ampersand here!
$dispatcher->addObserver($lambda);
$receiver->foo = 'bar';
echo "Sender->foo()\n";
$sender->foo();
Beispiel #16
0
 /**
  * Tests creating an email with only Bcc recipients.
  */
 public function testUndisclosedRecipients()
 {
     $email = new Email();
     $email->setSubject('Test')->setFrom(new Email\Address('*****@*****.**', 'Blog.cz'))->setBody(new Email\Body('Test'))->addBcc(new Email\Address('*****@*****.**', 'Test Test'));
     $sender = new Sender();
     $sender->setEmail($email);
     $result = $sender->send(Sender::MODE_NONE);
     $this->assertResult('sender-undisclosed-recipients.eml', $result);
 }
Beispiel #17
0
 public function createSender()
 {
     return Sender::create("user", "pass", "from")->setHttpClient($this->createHttpClient());
 }
Beispiel #18
0
         if ($v['goods_price'] > 0) {
             $pro = new Product();
             // $pro2 -> setOrderNo($order -> getOrderNo());
             $pro->setProductNo($v['goods_sn']);
             $pro->setName($v['goods_name']);
             $pro->setCategory("蛋糕");
             $pro->setCommissionType("");
             $pro->setAmount($v['goods_number']);
             $a = number_format($v['goods_price'] * (1 - ($order['bonus'] + $order['surplus']) / ($order['bonus'] + $order['surplus'] + $order['order_amount'])), 2, ".", "");
             $pro->setPrice($a);
             $products[] = $pro;
         }
     }
     $cps->setProducts($products);
     //var_dump(get_object_vars($cps));
     $sender = new Sender();
     $sender->setOrder($cps);
     $sender->sendOrder();
     $ordertime = $order['add_time'] + 8 * 3600;
     $sql = "INSERT INTO cps ( " . "order_id,src,channel,cid,wi,order_time)" . " values('{$new_order_id}','emar','cps'," . $arr[2] . ",'" . $arr[3] . "','" . $ordertime . "') ";
     $db->query($sql);
 }
 /* 修改拍卖活动状态 
     if ($order['extension_code']=='auction')
     {
         $sql = "UPDATE ". $ecs->table('goods_activity') ." SET is_finished='2' WHERE act_id=".$order['extension_id'];
         $db->query($sql);
     }
 	*/
 /* 处理余额、积分、红包 */
 if ($order['user_id'] > 0 && $order['surplus'] > 0) {
#                                                                           #
# This project is intended for beginners and learners                       #
# The main objective of this project is to see the way do something similar,#
#  such as sending messages via e-mail, files Read the content and create   #
#  templates or other                                                       #
#   and saved on the server within a specific folder.                       #
# Can anyone who want to modify or development (add some functions, styles),#
# and use it in his dite, or commercially.                                  #
#                                                                           #
#  so if you have any question -> ask me on m.anzawi2013@gmail.com          #
# or visit my blog on http://www.phptricks.org                              #
#---------------------------------------------------------------------------#
$temp = new Template();
$subsc = new Subscribe();
if (isset($_POST['send'])) {
    $send = new Sender();
    $tempName = str_replace('.html', '', $_POST['tempName']);
    $templ['content'] = $temp->getContent($tempName);
    $templ['title'] = $_POST['title'];
    $emails = $_POST['subsc'];
    if ($send->sendNewsLitter($emails, $templ)) {
        echo "Send Succcessfuly";
    } else {
        echo "Unabl to Send";
    }
}
?>
<form method="POST">
    <div style="width:20%; float: left;">
        Message Title : <input type="text" name="title"><br><br>
        <h3>Choice Template</h3>
Beispiel #20
0
 public function testAcceptsCertificatePath()
 {
     $sender = new Sender('api-key');
     $sender->certificatePath('/my/cert/path');
     $this->assertNotNull($sender);
 }
Beispiel #21
0
 /**
  * @expectedException Exception
  * @covers Taxi\Sender::send
  */
 public function testEmptyMessage()
 {
     $this->object->send("89129064863", "");
 }
Beispiel #22
-1
 public function sendSMS($to = '', $message = '')
 {
     $to = trim($to);
     $message = trim($message);
     $msg = '';
     $raw = '';
     $sms_provider = Yii::app()->functions->getOptionAdmin('sms_provider');
     //if ($sms_provider=="nexmo"){
     $sms_provider = strtolower($sms_provider);
     //dump($sms_provider);
     switch ($sms_provider) {
         case "clickatell":
             $Clickatell = new Clickatell();
             $Clickatell->user = Yii::app()->functions->getOptionAdmin('clickatel_user');
             $Clickatell->password = Yii::app()->functions->getOptionAdmin('clickatel_password');
             $Clickatell->api_id = Yii::app()->functions->getOptionAdmin('clickatel_api_id');
             $Clickatell->is_curl = Yii::app()->functions->getOptionAdmin('clickatel_use_curl');
             $Clickatell->to = $to;
             $Clickatell->message = $message;
             $clickatel_use_unicode = Yii::app()->functions->getOptionAdmin('clickatel_use_unicode');
             if ($clickatel_use_unicode == 1) {
                 $Clickatell->unicode = true;
             }
             $clickatel_sender = Yii::app()->functions->getOptionAdmin('clickatel_sender');
             $Clickatell->sender = $clickatel_sender;
             try {
                 $raw = $Clickatell->sendSMS();
                 $msg = "process";
             } catch (Exception $e) {
                 $msg = $e->getMessage();
                 $raw = $e->getMessage();
             }
             break;
         case "nexmo":
             $nexmo_sender_id = Yii::app()->functions->getOptionAdmin('nexmo_sender_id');
             $nexmo_key = Yii::app()->functions->getOptionAdmin('nexmo_key');
             $nexmo_secret = Yii::app()->functions->getOptionAdmin('nexmo_secret');
             $nexmo_use_curl = Yii::app()->functions->getOptionAdmin('nexmo_use_curl');
             $Nexmo = new Nexmo();
             $Nexmo->key = $nexmo_key;
             $Nexmo->secret = $nexmo_secret;
             $Nexmo->sender = $nexmo_sender_id;
             $Nexmo->to = $to;
             $Nexmo->message = $message;
             $Nexmo->is_curl = $nexmo_use_curl;
             $nexmo_use_unicode = Yii::app()->functions->getOptionAdmin('nexmo_use_unicode');
             if ($nexmo_use_unicode == 1) {
                 $Nexmo->unicode = true;
             }
             try {
                 $raw = $Nexmo->sendSMS();
                 $msg = "process";
             } catch (Exception $e) {
                 $msg = $e->getMessage();
             }
             break;
         case "private":
             $privatesms_username = Yii::app()->functions->getOptionAdmin('privatesms_username');
             $privatesms_password = Yii::app()->functions->getOptionAdmin('privatesms_password');
             $privatesms_sender = Yii::app()->functions->getOptionAdmin('privatesms_sender');
             /*dump($privatesms_username);
             	 dump($privatesms_password);
             	 dump($privatesms_sender);*/
             $obj = new Sender("103.16.101.52", "80", $privatesms_username, $privatesms_password, $privatesms_sender, $message, $to, "0", "1");
             $resp = $obj->Submit();
             if (preg_match("/1701/i", $resp)) {
                 $raw = $resp;
                 $msg = "process";
             } else {
                 $errors['1702'] = "Invalid URL Error, This means that one of the parameters was not\r\n\t\t\tprovided or left blank";
                 $errors['1703'] = "Invalid value in username or password field";
                 $errors['1704'] = 'Invalid value in "type" field';
                 $errors['1705'] = "Invalid Message";
                 $errors['1706'] = "Invalid Destination";
                 $errors['1707'] = "Invalid Source (Sender)";
                 $errors['1708'] = 'Invalid value for "dlr" field';
                 $errors['1709'] = "User validation failed";
                 $errors['1710'] = "Internal Error";
                 $errors['1025'] = "Insufficient Credit";
                 $resp_temp = explode("|", $resp);
                 if (is_array($resp_temp) && count($resp_temp) >= 1) {
                     $code_error = $resp_temp[0];
                 } else {
                     $code_error = $resp;
                 }
                 if (array_key_exists($code_error, $errors)) {
                     $msg = $errors[$code_error];
                 } else {
                     $msg = "Undefined response from api.";
                 }
             }
             break;
         case "bhashsms":
             $bhashsms_user = Yii::app()->functions->getOptionAdmin('bhashsms_user');
             $bhashsms_pass = Yii::app()->functions->getOptionAdmin('bhashsms_pass');
             $bhashsms_senderid = Yii::app()->functions->getOptionAdmin('bhashsms_senderid');
             $bhashsms_smstype = Yii::app()->functions->getOptionAdmin('bhashsms_smstype');
             $bhashsms_priority = Yii::app()->functions->getOptionAdmin('bhashsms_priority');
             $bhashsms_use_curl = Yii::app()->functions->getOptionAdmin('bhashsms_use_curl');
             $Bhashsms = new Bhashsms();
             $Bhashsms->user = $bhashsms_user;
             $Bhashsms->password = $bhashsms_pass;
             $Bhashsms->sender = $bhashsms_senderid;
             $Bhashsms->sms_type = $bhashsms_smstype;
             $Bhashsms->priority = $bhashsms_priority;
             $Bhashsms->to = $to;
             $Bhashsms->message = $message;
             $Bhashsms->is_curl = $bhashsms_use_curl == 1 ? true : false;
             try {
                 $raw = $Bhashsms->sendSMS();
                 $msg = "process";
             } catch (Exception $e) {
                 $msg = $e->getMessage();
             }
             break;
         default:
             require_once "Twilio.php";
             $sms_sender_id = Yii::app()->functions->getOptionAdmin('sms_sender_id');
             $sms_account_id = Yii::app()->functions->getOptionAdmin('sms_account_id');
             $sms_token = Yii::app()->functions->getOptionAdmin('sms_token');
             $twilio = new Twilio();
             $twilio->_debug = false;
             $twilio->sid = $sms_account_id;
             $twilio->auth = $sms_token;
             $twilio->data['From'] = $sms_sender_id;
             $twilio->data['To'] = $to;
             $twilio->data['Body'] = $message;
             if ($resp = $twilio->sendSMS()) {
                 $raw = $twilio->getSuccessXML();
                 $msg = "process";
             } else {
                 $msg = $twilio->getError();
             }
             break;
     }
     return array('msg' => $msg, 'raw' => $raw, 'sms_provider' => $sms_provider);
 }