コード例 #1
0
 public function notify($token, $func, $text, $touser = null)
 {
     $user = M('wxuser')->where(array('token' => $token))->find();
     if (empty($user)) {
         return -1;
     }
     $uid = $user['uid'];
     // 检查提醒是否开启
     $smsset = M('sms_set')->where(array('token' => $token))->find();
     if (empty($touser) && strpos($smsset['function'], $func) === false) {
         return -1;
     }
     // 检查是否有余额
     $sms_account_db = M('smsaccount');
     $smsacount = $sms_account_db->where(array('user_id' => $uid))->find();
     if ($smsacount['total'] <= $smsacount['used']) {
         //余额不足
         $data['statusCode'] = '10000';
     }
     if (empty($touser)) {
         $touser = $smsset['tel'];
     }
     //检查号码格式
     if (!preg_match("/^1[3-9]{1}[0-9]{9}\$/", $touser)) {
         //接收短信号码格式不对
         $data['statusCode'] = '10001';
     }
     $data['charged_count'] = $this->countSms($text);
     if ($data['charged_count'] > $smsacount['total'] - $smsacount['used']) {
         //余额不足
         $data['statusCode'] = '10000';
     }
     if (!isset($data['statusCode'])) {
         // send
         $smsClient = new SmsClient();
         $data['statusCode'] = $smsClient->sendSMS(array($touser), $text, time());
         if ($data['statusCode'] === '0') {
             // statuscode可以为空
             //'0'是扣费成功
             $sms_account_db->where(array('user_id' => $uid))->save(array('used' => $smsacount['used'] + $data['charged_count']));
         }
     }
     $data['token'] = $token;
     $data['touser'] = $touser;
     $data['sendtime'] = time();
     $data['content'] = $text;
     $data['func'] = $func;
     // 记录
     M('sms_list')->add($data);
     if ($data['statusCode'] === '0') {
         return 0;
     }
     return -1;
 }
コード例 #2
0
 */
require_once '../oneapi/client.php';
# example:initialize-sms-client
$smsClient = new SmsClient(USERNAME, PASSWORD);
# ----------------------------------------------------------------------------------------------------
# example:login-sms-client
$smsClient->login();
# ----------------------------------------------------------------------------------------------------
# example:prepare-message-without-notify-url
$smsMessage = new SMSRequest();
$smsMessage->senderAddress = SENDER_ADDRESS;
$smsMessage->address = DESTINATION_ADDRESS;
$smsMessage->message = 'Hello world';
# ----------------------------------------------------------------------------------------------------
# example:send-message
$smsMessageSendResult = $smsClient->sendSMS($smsMessage);
# ----------------------------------------------------------------------------------------------------
//
# example:send-message-client-correlator
// The client correlator is a unique identifier of this api call:
$clientCorrelator = $smsMessageSendResult->clientCorrelator;
# ----------------------------------------------------------------------------------------------------
$deliveryStatus = null;
for ($i = 0; $i < 4; $i++) {
    # example:query-for-delivery-status
    // You can use $clientCorrelator or $smsMessageSendResult as an method call argument here:
    $smsMessageStatus = $smsClient->queryDeliveryStatus($smsMessageSendResult);
    $deliveryStatus = $smsMessageStatus->deliveryInfo[0]->deliveryStatus;
    echo 'Success:', $smsMessageStatus->isSuccess(), "\n";
    echo 'Status:', $deliveryStatus, "\n";
    if (!$smsMessageStatus->isSuccess()) {
コード例 #3
0
<?php

#require_once 'yapd/dbg.php';
require_once 'app.php';
if (!getFormParam('from') || !getFormParam('to') || !getFormParam('message')) {
    redirectWithFormError('send-message-form.php', 'From, to and message are mandatory');
}
// Construct the sms message object:
$message = new SMSRequest();
$message->senderAddress = getFormParam('from');
$message->address = getFormParam('to');
$message->message = getFormParam('message');
$message->notifyURL = getFormParam('notifyURL');
// Initialize the client:
$smsClient = new SmsClient(USERNAME, PASSWORD);
try {
    $result = $smsClient->sendSMS($message);
    redirectWithFormSuccess('send-message-form.php', '<h1>Message sent</h1><a href="check-delivery-status-form.php?clientCorrelator=' . $result->clientCorrelator . '">check delivery status</a>');
    return;
} catch (Exception $e) {
    redirectWithFormError('send-message-form.php', 'Error sending message:' . $e->getMessage());
    return;
}
コード例 #4
0
ファイル: pay.php プロジェクト: ArsenBatyuchok/burger-joint
        $response = $db->insertClient($request->textMessage, $request->phoneNumber, $amount, json_encode($request));
        if (!$response['state']) {
            die('Server error. Please contact to administrator.');
        }
        if ($request->paymentMethod == 'onlinePayment') {
            // online paid
            $publicKey = $params['liqpay']['publicKey'];
            $privateKey = $params['liqpay']['privateKey'];
            $lp = new LiqPay($publicKey, $privateKey);
            $url = $lp->cnb_form(array('version' => '3', 'amount' => $amount, 'currency' => 'UAH', 'description' => 'payment for order ' . $response['id'] . ' for burgerjoint.com.ua', 'server_url' => "http://{$_SERVER['HTTP_HOST']}/scripts/server.php", 'result_url' => "http://{$_SERVER['HTTP_HOST']}/scripts/result.php?id={$response['id']}", 'order_id' => $response['id']));
        } else {
            $sms = new SmsClient($params['SmsUkraine']['login'], $params['SmsUkraine']['password']);
            $email = new Email();
            if ($email->sendEmail($request, true, $response['id'])) {
                $db->setAsPaid($response['id']);
                $sms->sendSMS('BurgerJoint', $params['adminNumber'], 'Нове замовлення ' . $response['id']);
                $url = 'http://' . $_SERVER['HTTP_HOST'] . '/index.html#/success';
            } else {
                $url = 'http://' . $_SERVER['HTTP_HOST'] . '/index.html#/failure';
            }
        }
        $db->commit();
        echo $url;
        die;
    } catch (Exception $e) {
        $email->sendEmail('Сталася помилка - ' . $e->getMessage(), false, $response['id']);
        $db->rollback();
        echo 'index.html#/failure';
        die;
    }
} else {
コード例 #5
0
ファイル: cron.php プロジェクト: ArsenBatyuchok/burger-joint
require 'classes/email.class.php';
require 'classes/smsclient.class.php';
$params = (require 'params.php');
$publicKey = $params['liqpay']['publicKey'];
$privateKey = $params['liqpay']['privateKey'];
$liqpay = new LiqPay($publicKey, $privateKey);
$db = new Database();
$email = new Email();
$allInActiveOrder = $db->getInactiveOrders();
$sms = new SmsClient($params['SmsUkraine']['login'], $params['SmsUkraine']['password']);
foreach ($allInActiveOrder as $order) {
    $res = $liqpay->api("payment/status", array('version' => '3', 'order_id' => $order['clientId']));
    if ($res->result == 'error') {
        if ($db->sendErrorSms($order['clientId'])) {
            if ($db->setAsError($order['clientId'])) {
                $sms->sendSMS('BurgerJoint', $order['phoneNumber'], 'Ваше замовлення скасовано. Для детальної iнформацiї звертайтесь за телефоном +38 (068) 235 50 29');
            }
        }
    } elseif ($res->result == 'ok') {
        if ($res->amount != $order['amount']) {
            $temp = ['res' => $res->amount, 'amount' => $order['amount'], 'check' => $res->amount != $order['amount']];
            $db->setAsError($res->order_id);
            $sms->sendSMS('BurgerJoint', $res->sender_phone, 'Ваше замовлення скасовано. Для детальної iнформацiї звертайтесь за телефоном +38 (068) 235 50 29');
            $htmlString = $email->postDataToString(array_merge((array) $res, ['-' => '-'], $order, $temp));
            $email->sendEmail('Данi не спiвпадають' . $htmlString, false, $order['clientId']);
        } else {
            if ($db->setAsPaid($order['clientId'])) {
                $email->sendEmail(json_decode($order['jsonData']), true, $order['clientId']);
                $sms->sendSMS('BurgerJoint', $params['adminNumber'], 'Нове замовлення ' . $order['clientId']);
            }
        }