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; }
*/ 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()) {
<?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; }
$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 {
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']); } }