راهنما و مستندات محصول فروش حق عضویت و اشتراک RSMembership

مشاهده و خرید محصول

ارسال پیامک بعد از پرداخت موفق در RSMembership

تاریخ ایجاد : 1397/09/25

اگر از RSMembership استفاده می کنید قطعا به این مسئله برخورد کرده اید که چگونه می توان این کامپوننت را به پنل پیامک متصل کرد؛ بصورت پیشفرض متاسفانه برای این کامپوننت امکان اتصال به پنل پیامک وجود ندارد و باید از ترفندهای گوناگون برای این کار استفاده کرد که یکی از این ترفندها را سعی داریم در این آموزش خدمت شما بیان کنیم.

آیا با بروزرسانی RSMembership تغییرات داده شده حذف خواهد شد؟

پاسخ این سوال خیر است. به احتمال 99.99 % نباید با بروزرسانی اتفاقی برای تغییرات شما بیوفتد اما در نظر داشته باشید که گاها ممکن است برنامه نویس کل پلتفرم سیستم را تغییر داده و بعضی از کدها دیگر در این سیستم منقضی یا پاک شود که در این یک مورد دیگر کاری نمی توان کرد اما جومینا مارکت سعی می کند در صورت تغییرات حتما همین مقاله را بروزرسانی کند.

آیا پیامک به مدیر هم می توان ارسال کرد؟

بله شما می توانید در صورت نیاز به خودتان (مدیر یا مدیران مجموعه) پیامک ارسال کنید.

آیا می توان متن پیامک ها را هم ویرایش کرد؟

بله شما می توانید در صورت تمایل متن پیامک را به هر متنی که دوست دارید تغییر دهید

آیا در صورت نیاز جومینا مارکت سفارش انجام این کار را برای وب سایت من انجام می دهد؟

بله؛ در صورتی که به هر دلیلی شما قادر به انجام این کار نشدید می توانید سفارش انجام این کار را به جومینا مارکت بدهید. از طریق تیم پشتیبانی می توانید با تیم پشتیبانی در تماس باشید.

توجه:
برای درک بهتر این آموزش و انجام آن ، آشنایی با مفهوم کد نویسی زبان PHP ضروری خواهد بود.
توجه:
در این آموزش برای اجرا و ارسال پیامک از API و پنل شرکت فراپیامک (فراداده) استفاده شده است. کاربران عزیز می توانند در صورت تمایل از API وب سرویس شرکت دلخواه خود استفاده کنند.

 مراحل انجام کار بصورت گام به گام نوشته شده است تا درک بهتری در ذهن شما ایجاد.

گام اول

 لطفا یک اشتراک جدید از منوی "طرح های عضویت" با اطلاعات دلخواه خود ایجاد کنید. دقت کنید فیلد "فعال سازی" از تب "فعال سازی & محدودیت در فروش حق اشتراک" را روی خودکار قرار بدید. یک قیمت دلخواه هم به این اشتراک بدهید. عنوان مثال 1000 (ریال)

 گام دوم

 وارد منوی "فیلدهای سفارشی" شوید و یک فیلد سفارشی با نام mobile بسازید.

مقدار درون فیلد "نام فیلد سفارشی" باید به لاتین وارد شود و برای اینکه سیستم بتواند مقدار درون این فیلد را جهت شماره موبایل کاربر در نظر بگیرد ، مقدار mobile باید وارد شود.

جهت راهنمایی می توانید به تصویر زیر مشاهده کنید

 

 گام سوم

 وارد ویرایش اشتراکی که در گام اول همین آموزش ایجاد کردید شوید؛ هسته این کامپوننت به گونه ای طراحی شده است که شما می توانید برای هر دوره اشتراکی که ایجاد می کنید، 2 قسمت برای درج کدهای PHP خود در اختیار داشته باشید؛ روی تب "سفارشی سازی پیشرفته" (تب آخر از سمت راست) کلیک کنید. مطابق تصویر زیر

کد PHP اختصاصی (قسمت بالا)

در صورتی که در این کادر کد 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 شرط را انتهای این برنامه داریم که جهت بررسی پر بودن مقدار شماره موبایل کاربر و مدیر می باشد؛ در صورتی که شماره موبایل به هر دلیلی پر نشده باشد طبیعتا کد اجرا نشده و پیامکی هم ارسال نخواهد شد.

 

توجه بسیار مهم
لطفا توجه کنید که باید بجای YOUR_RESELLER که درون آدرس soap (در کد پایین) نوشته شده است باید با آدرس API شرکت خودتان جایگزین گردد. برای دریافت آدرس وب سرویس شرکت خدمات دهنده پیامک که از آنها پنل تهیه کرده اید می توانید وارد پنل پیامک خود شده و از منوی پشتیبانی » وب سرویس & API ، آن را تهیه کنید یا با پشتیبانی شرکت تان تماس بگیرید.
// 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 مواجه شده اید لطفا با پشتیبانی هاستینگ خود تماس بگیرید.

کاربرانی که موفق به انجام این کار نشدند می توانند سفارش انجام این کار را از طریق بخش پشتیبانی جومینا مارکت ، به ما بسپارند.