اگر از RSMembership استفاده می کنید قطعا به این مسئله برخورد کرده اید که چگونه می توان این کامپوننت را به پنل پیامک متصل کرد؛ بصورت پیشفرض متاسفانه برای این کامپوننت امکان اتصال به پنل پیامک وجود ندارد و باید از ترفندهای گوناگون برای این کار استفاده کرد که یکی از این ترفندها را سعی داریم در این آموزش خدمت شما بیان کنیم.
پاسخ این سوال خیر است. به احتمال 99.99 % نباید با بروزرسانی اتفاقی برای تغییرات شما بیوفتد اما در نظر داشته باشید که گاها ممکن است برنامه نویس کل پلتفرم سیستم را تغییر داده و بعضی از کدها دیگر در این سیستم منقضی یا پاک شود که در این یک مورد دیگر کاری نمی توان کرد اما جومینا مارکت سعی می کند در صورت تغییرات حتما همین مقاله را بروزرسانی کند.
بله شما می توانید در صورت نیاز به خودتان (مدیر یا مدیران مجموعه) پیامک ارسال کنید.
بله شما می توانید در صورت تمایل متن پیامک را به هر متنی که دوست دارید تغییر دهید
بله؛ در صورتی که به هر دلیلی شما قادر به انجام این کار نشدید می توانید سفارش انجام این کار را به جومینا مارکت بدهید. از طریق تیم پشتیبانی می توانید با تیم پشتیبانی در تماس باشید.
مراحل انجام کار بصورت گام به گام نوشته شده است تا درک بهتری در ذهن شما ایجاد.
لطفا یک اشتراک جدید از منوی "طرح های عضویت" با اطلاعات دلخواه خود ایجاد کنید. دقت کنید فیلد "فعال سازی" از تب "فعال سازی & محدودیت در فروش حق اشتراک" را روی خودکار قرار بدید. یک قیمت دلخواه هم به این اشتراک بدهید. عنوان مثال 1000 (ریال)
وارد منوی "فیلدهای سفارشی" شوید و یک فیلد سفارشی با نام mobile بسازید.
جهت راهنمایی می توانید به تصویر زیر مشاهده کنید
وارد ویرایش اشتراکی که در گام اول همین آموزش ایجاد کردید شوید؛ هسته این کامپوننت به گونه ای طراحی شده است که شما می توانید برای هر دوره اشتراکی که ایجاد می کنید، 2 قسمت برای درج کدهای PHP خود در اختیار داشته باشید؛ روی تب "سفارشی سازی پیشرفته" (تب آخر از سمت راست) کلیک کنید. مطابق تصویر زیر
در صورتی که در این کادر کد PHP خودتان را قرار بدید و ذخیره کنید، بعد از ایجاد و تایید عضویت کاربر اجرا خواهد شد. توجه داشته باشید که در همین صفحه و تب "فعال سازی & محدودیت در فروش حق اشتراک" باید گزینه فعال سازی را روی "خودکار" قرار دهید تا بلافاصله بعد از پرداخت موفق ، عضویت فعال و تایید شود. به تصویر زیر دقت کنید
همان طور که از عنوان این بخش پیداست ، زمانی که تراکنش موفقیت آمیز بود کدهای PHP درون این کادر اجرا خواهد شد که در واقع ما امروز با همین قسمت کار داریم.
کدهای زیر را با دقت مطالعه کنید :
$transaction->price; // مبلغ پرداخت شده
$transaction->currency; // پول رایج پرداخت شده
$transaction->hash; // کد پیگیری بانک
$transaction->gateway; // نام درگاه
$membership->name; // عنوان اشتراک خریداری شده
$user_data->name; // نام کاربر در موقع ثبت نام
$transaction->user_email;// ایمیل کاربر
$user_data->fields['mobile'];// شماره موبایل کاربر
// تاریخ شروع اشتراک
$ti_start_date = JHTML::date($membership_start, 'Y-m-d H:i');
// تاریخ پایان اشتراک (این متغیر بسته به جزییات اشتراک شما ممکن است عدد تاریخ یا متن "نا محدود" باشد)
$ti_end_date = ($membership_end == "0000-00-00 00:00:00") ? "نا محدود" : JHTML::date($membership_end, 'Y-m-d H:i');
// شماره موبایل مدیر(ها) اگر بیش از یک مورد می باشد لطفا با کاما (,) از هم جدا کنید
$admin_mobiles = "09111111111";
// متن پیامک به کاربر
$user_sms_text = $user_data->name."عزیز سلام\r نام اشتراک خریداری شده:".$membership->name."\r کد پیگیری بانک:".$transaction->hash."مبلغ:".$transaction->price." ".$transaction->currency."\rدرگاه:".$transaction->gateway;
// متن پیامک به مدیر
$admin_text = "مدیر عزیز سلام \r یک عضویت جدید برای اشتراک ".$membership->name." ایجاد شده است.\rنام مشترک:".$user_data->name;
// اطلاعات پنل
$username = "0000"; //
$password = "****"; //
$smsLine = "30001000..."; //
// FaraPayamak SendEN SMS A
// Admin
if(!empty($admin_mobiles)) {
$admin_mobiles = explode(',', admin_mobiles);
$client = new soapClient('http://YOUR_RESELLER.com/post/send.asmx?wsdl');
$err = $client->getError();
if ($err) {
echo 'Constructor error' . $err;
}
$parameters['username'] = $username;
$parameters['password'] = $password;
$parameters['to'] = $admin_mobiles;
$parameters['from'] = $smsLine;
$parameters['text'] = $admin_text;
$parameters['isflash'] = false;
$client->call('SendSimpleSMS2', $parameters);
}
// User
if(isset($user_data->fields['mobile']) && !empty($user_data->fields['mobile'])) {
$userMobile = array($user_data->fields['mobile']);
$client = new soapClient('http://YOUR_RESELLER.com/post/send.asmx?wsdl');
$err = $client->getError();
if ($err) {
echo 'Constructor error' . $err;
}
$parameters['username'] = $username;
$parameters['password'] = $password;
$parameters['to'] = $admin_mobiles;
$parameters['from'] = $smsLine;
$parameters['text'] = $admin_text;
$parameters['isflash'] = false;
$client->call('SendSimpleSMS2', $parameters);
}
حال می خواهیم کدهایی که نیاز به توضیح دارند به به شما توضیح مختصری جهت درج برنامه بدهیم.
یک سری اطلاعات اولویه از تراکنش انجام شده در اختیار داریم؛ توضیح فارسی هر متغیر در کنار خود متغیر نوشته شده است و نیاز به توضیح بیشتر نیست. البته توجه کنید که فیلد موبایل کاربر طبق دستور العمل گام دوم در همین آموزش باید توسط شما ایجاد گردد و بصورت پیشفرض در اطلاعات وجود ندارد. اطلاعات تراکنش و اشتراک شامل موارد زیر می باشند :
$transaction->price; // مبلغ پرداخت شده
$transaction->currency; // پول رایج پرداخت شده
$transaction->hash; // کد پیگیری بانک
$transaction->gateway; // نام درگاه
$membership->name; // عنوان اشتراک خریداری شده
$user_data->name; // نام کاربر در موقع ثبت نام
$transaction->user_email;// ایمیل کاربر
$user_data->fields['mobile'];// شماره موبایل کاربر
// تاریخ شروع اشتراک
$ti_start_date = JHTML::date($membership_start, 'Y-m-d H:i');
// تاریخ پایان اشتراک (این متغیر بسته به جزییات اشتراک شما ممکن است عدد تاریخ یا متن "نا محدود" باشد)
$ti_end_date = ($membership_end == "0000-00-00 00:00:00") ? "نا محدود" : JHTML::date($membership_end, 'Y-m-d H:i');
خط بعدی متغیر موبایل مدیر یا مدیران می باشد که طبق توضیحی که در کنار خود متغیر داده شده ، اگر به نیاز دارید به بیش از یک مدیر پیامک ارسال کنید می توانید شماره موبایل بیشتری را وارد کنید اما باید هر شماره موبایل را با کاما (,) جدا کنید. مثال زیر توجه کنید :
// شماره موبایل مدیر(ها) اگر بیش از یک مورد می باشد لطفا با کاما (,) از هم جدا کنید
// برای یک مدیر
$admin_mobiles = "09111111111";
// برای سه مدیر
$admin_mobiles = "09111111111,09122222222,09133333333";
اطلاعات بعدی باید توسط شما ویرایش شود و اطلاعات واقعی خودتان درج شود؛ متغیر های بعدی برای اطلاعات اصلی پیامک یعنی متن ارسال به کاربر ، متن ارسال به مدیر ، نام کاربری ، کلمه عبور و شماره خط پنلی که از شرکت مربوطه خرید کرده اید می باشد؛ لطفا این موارد را بصورت اطلاعات واقعی ویرایش کنید.
// متن پیامک به کاربر
$user_sms_text = $user_data->name."عزیز سلام\r نام اشتراک خریداری شده:".$membership->name."\r کد پیگیری بانک:".$transaction->hash."مبلغ:".$transaction->price." ".$transaction->currency."\rدرگاه:".$transaction->gateway;
// متن پیامک به مدیر
$admin_text = "مدیر عزیز سلام \r یک عضویت جدید برای اشتراک ".$membership->name." ایجاد شده است.\rنام مشترک:".$user_data->name;
// اطلاعات پنل
$username = "0000"; //
$password = "****"; //
$smsLine = "30001000..."; //
در نهایت هم 2 شرط را انتهای این برنامه داریم که جهت بررسی پر بودن مقدار شماره موبایل کاربر و مدیر می باشد؛ در صورتی که شماره موبایل به هر دلیلی پر نشده باشد طبیعتا کد اجرا نشده و پیامکی هم ارسال نخواهد شد.
// Admin
if(!empty($admin_mobiles)) {
$admin_mobiles = explode(',', admin_mobiles);
$client = new soapClient('http://YOUR_RESELLER.com/post/send.asmx?wsdl');
$err = $client->getError();
if ($err) {
echo 'Constructor error' . $err;
}
$parameters['username'] = $username;
$parameters['password'] = $password;
$parameters['to'] = $admin_mobiles;
$parameters['from'] = $smsLine;
$parameters['text'] = $admin_text;
$parameters['isflash'] = false;
$client->call('SendSimpleSMS2', $parameters);
}
// User
if(isset($user_data->fields['mobile']) && !empty($user_data->fields['mobile'])) {
$userMobile = array($user_data->fields['mobile']);
$client = new soapClient('http://YOUR_RESELLER.com/post/send.asmx?wsdl');
$err = $client->getError();
if ($err) {
echo 'Constructor error' . $err;
}
$parameters['username'] = $username;
$parameters['password'] = $password;
$parameters['to'] = $admin_mobiles;
$parameters['from'] = $smsLine;
$parameters['text'] = $admin_text;
$parameters['isflash'] = false;
$client->call('SendSimpleSMS2', $parameters);
}
در صورتی که تمایل به استفاده از خدمات پیامک شرکت دیگری غیر از فراپیامک را داشته باشید می توانید کد وب سرویس API آن شرکت را جایگزین با کد API ای که در قسمت بالا نوشته شده است ، بکنید فقط فراموش نکنید که باید مقادیر مربوطه مانند نام کاربری ، کلمه عبور ، متن پیامک و شماره خط تبلیغاتی را جایگزین کنید.
تمامی کدها را باید در قسمت "کد PHP اختصاصی (تراکنش پذیرفته شده)" قرار گیرند؛ به یاد داشته باشید که هر اشتراک ایجاد شده بصورت انحصارا این فیلد را درون تنظیمات خود دارد فلذا اگر بخواهید برای همه اشتراک ها پیامک ارسال شود باید درون تک تک آنها قرار داده شود.
سرویس soap باید در سرور شما اجرا شده و فعال باشد در صورتی که با خطای soap مواجه شده اید لطفا با پشتیبانی هاستینگ خود تماس بگیرید.