با سلام.
یه مژده کوچولو.
اونم برای کسانی که تو ساایتشون پرداخت آنلاین دارن و می خوان هر پرداختی که انجام شد بهشون یه اس ام اس ارسال بشه!
اگه از کاربرانی باشن که از ما سرویس دارن راهنمای زیر به دردشون می خوره.
برای ارسال اس ام اس از طریق وب سرویس به کدهای زیر توجه کنید:
کد PHP:
$Sclient = new SoapClient("http://www.persiansms.info/webservice/smsService.php?wsdl");
این کد رو در صفحه ای که مربوط به CallBack پرداخت هست قرار بدید.
حالا باید کد زیر رو در جایی که مربوط به موفقیت آمیز بودن پرداخت هست قرار بدید.
مثلا فرض می کنیم در کد شما در قسمتی از اون شرطی هست که چک می کنه پرداخت اگه موفقیت آمیز باشه این کارها انجام بشه. تو همون قسمت باید کد زیر رو بزارید:
کد PHP:
$response = $Sclient->send_sms('username' , 'password' , 'Send_Number','Recieve_Number', 'مبلغ '.$amount.'تومان به حساب شما واریز شد');
متغیر amount مبلغ پرداخت شده هست که با توجه به کد شما اسم متغیر ممکنه فرق کند.
یوزر نیم و پسورد که واضح هست باید چی باشه!
شماره ارسال کننده Send_Number شماره اشتراکی یا تختصاصی پنل شماست.
شماره دریافت کننده Recieve_Number شماره موبایل شماست.
برای مثال برای پرداخت آنلاین زرین پال برای whmcs باید فایل modules/gateways/callback/zarinpal.php به شرح زیر ویرایش بشه:
کد PHP:
<?php
/**
* @author rn4j1m1
* @copyright 2010
*/
# Required File Includes
include("../../../dbconnect.php");
include("../../../includes/functions.php");
include("../../../includes/gatewayfunctions.php");
include("../../../includes/invoicefunctions.php");
$gatewaymodule = "zarinpal"; # Enter your gateway module name here replacing template
$GATEWAY = getGatewayVariables($gatewaymodule);
if (!$GATEWAY["type"]) die("Module Not Activated"); # Checks gateway module is active before accepting callback
# Get Returned Variables - Adjust for Post Variable Names from your Gateway's Documentation
$invoiceid = $_GET['invoiceid'];
$transid = $_GET['refID'];
$amount = $_GET['amount'];
$au = $_GET['au'];
$invoiceid = checkCbInvoiceID($invoiceid,$GATEWAY["name"]); # Checks invoice ID is a valid invoice number or ends processing
checkCbTransID($transid); # Checks transaction number isn't already in the database and ends processing if it does
$zpamount = $amount;
if($GATEWAY['afp']=='on') $zpamount = $zpamount/0.975;
$client = new SoapClient('http://www.zarinpal.com/WebserviceGateway/wsdl', array('encoding'=>'UTF-8'));
$Sclient = new SoapClient("http://www.persiansms.info/webservice/smsService.php?wsdl");
$res = $client->PaymentVerification($GATEWAY['merchantID'], $au, $zpamount);
if($GATEWAY['Currencies']=='Rial') $amount = $amount*10;
$fee = $amount;
if ($res=="1") {
$response = $Sclient->send_sms('username' , 'password' , 'Send_Number','Recieve_Number', 'مبلغ '.$amount.'تومان به حساب شما واریز شد');
addInvoicePayment($invoiceid,$transid,$amount,$fee,$gatewaymodule); # Apply Payment to Invoice: invoiceid, transactionid, amount paid, fees, modulename
logTransaction($GATEWAY["name"],$_POST,"Successful"); # Save to Gateway Log: name, data array, status
} else {
logTransaction($GATEWAY["name"],$_POST,"Unsuccessful"); # Save to Gateway Log: name, data array, status
}
Header('Location: '.$CONFIG['SystemURL'].'/clientarea.php?action=invoices');
?>
بدیهی هست که اگه وب سرویس پنل شما فعال باشه و پنل شما شارِ ریالی برای 1 اس ام اس داشته باشه پیام کوتاه ارسال میشه.
امیدوارم آموزش مفید بوده باشه.
موفق و پیروز باشید.