سلام ، آیا این بازدید اول شماست ؟ یا
نمایش نتایج: از شماره 1 تا 7 , از مجموع 7

موضوع: چگونگی اتصال افزونه ها به بانك ها

  1. #1

    تاریخ عضویت
    Nov 2010
    نوشته ها
    5,091
    تشکر
    0
    تشکر شده 2,056 بار در 1,618 ارسال

    چگونگی اتصال افزونه ها به بانك ها

    سلام
    موضوعی كه برای خيلر از ايرانيها داغ هست اينه كه چطوری يه كامپوننت رو به بانك وصل كنيم
    قبلاً يه تاپيك در اين مورد زده شده بود كه قديمی بود و نميشد پاسخ داد
    اما حالا چيكار كنيم كه فرضاً يك كامپوننت به بانك وصل شه.
    دو تا راه وجود داره برار اين كار:
    1) شما برنامه نويسی حرفه ای باشيد و اين كار براتون تفريح باشه كه در سريعترين زمان ممكن انجام ميديد. البته كلی سلول بايد بسوزونيد تا به نتيجه برسيد
    2) شما برنامه نويسی زياد بلد نيستيد(مثل من) و اين كارا براتون كابوسه ولی در عوض فكر تون كار ميكنه و به جای موازی كاری از سيستم های ساخته شده استفاده می كنيد.

    در مورد اولی شما بايد بدونيد كه كامپوننت چه جوری كار می كنه و در بخش development كامپوننت مورد نظر بايد بگرديد و طريقه ر اتصالش رو پيدا كنيد
    از طرف ديگه بايد بيفتيد دنبال مراحل قانونی بانك كه بهتون درگاه بدند و با در اختيار داشتن مستندات بانكی، كامپوننت مورد نظر رو گسترش بديد.
    زمان صرف شده برای طراحی اين سيستم خيلی زياده و يك پلاگين ارزش چنين زحمتی رو نداره.

    اما راه دومی كه خيلی راحته و بيشتر می صرفه استفاده از پلاگين های ساخته شده ست. فرض بگيريد ميخواييم كامپوننت RsMebership رو به بانك پاسارگاد وصل كنيم:
    زمانی كه اين كامپوننت رو دانلود می كنيد يك پلاگين برای 2checkout داره. همين پلاگين كافيه برای گسترش.
    اين پلاگين زحمت گسترش رو برامون كم میكنه و ما فقط مستندات بانك رو به جای دستورات 2checkout قرار ميديم. بقيه كارا با خود پلاگين انجام ميشه.
    فقط نكته ای كه هست اينه كه همه ی بانك ها به جز يك مورد از توابع Soap استفاده می كنند كه اين توابع برای بانكهایی بكار ميره كه براش ip سرور مهمه و جزو شرايط اتصالشه

    همه ی بانك ها برای خودشون يه حالت فرم گونه دارند. يعنی تو تگ فرم اطلاعاتشون رو وارد می كنند و فيلد های فرم مخفی می مونه. در جوملا هم به همين شكل هست و فرم پرداخت مثل قيمت و تاريخ و اينها مخفی هستند و ما نمی تونيم ببينيمشون. اين فرم ها در جوملا بصورت $html قابل تعريف هستند. البته راه های زيادی برای اتصال وجود داره ولی اين مورد راحت تره.
    همين كار رو ميشه رو هر چيزی كه امكان اتصال داشته باشه پياده كرد. مثل VM يا Ads Manager و ...

    بعد طراحی فايل پلاگين در php بايد به xml بريد و تغييراتی رو كه اضافه هست پاك كنيد. فايل xml دوتا كار براتون انجام ميده: يكی اينكه نصاب پلاگين شماست و محتويات فايل های نصبی و نويسنده اونجا قرار ميگيره. دوم اينكه اختيارات كاربر رو محيط مديريت به عهده داره و كاربر ميتونه پارامترهاي پلاگين رو در محيط مديريت به عهده بگيره. در اين مورد زياد نميشه بحث كرد چون پارامتر زياد داره
    مثلاً بعضی از بانك ها پرداخت تستی ندارند و اين راديو باكس اضافه ست

    به روش دوم طراحی اصطلاحاً مهندسی معكوس گفته ميشه كه كشورهایی مثل چين، روسيه و ايران در اين مقوله مقام دار هستند. تو اين روش از چيزهایی كه ساخته شده برای طراحی مجدد استفاده ميشه و در بعضی مواقع موقعيت ايجاب ميكنه كه از اين روش استفاده كنيم. مثلاً همين پرداخت آنلاين بايد 100 تومن فروحته بشه ولی با مهندسی معكوس ميشه 10 تومن.

    تو اينجا سعی كردم كليت كار رو بگم و روش برنامه نويسی رو توضيح ندادم. فقط خواستم بدونيد كه اتصال به بانك كار چندان سختی نيست و با كمی اطلاعات می تونيد وصل كنيد

    موفق و مؤيد باشيد
    ویرایش توسط safajuy : 09-14-2011 در ساعت 09:56 AM

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  2. 7 کاربر زیر از safajuy عزیز به خاطر این پست مفید تشکر کرده اند.


  3. # ADS
    تبلیغات در جوملا فارسی
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2

    تاریخ عضویت
    May 2011
    محل سکونت
    Boot Strap Loader
    نوشته ها
    74
    تشکر
    18
    تشکر شده 7 بار در 6 ارسال
    صفاجوی عزیز امکانش هست که این مطالب رو ادامه بدید ؟؟؟ چون واقعا مبحث بسیار مهم و داغی هست همونطور که خودتون گفتین
    ازتون تشکر فراوان دارم بخاطر این توضیحات و پیشنهاد میکنم برای اینکه گیر خیلی از این دردسر های بانک ها نیوفتیم با zarinpal بررسی کنید
    درسته خودشون تو سایتشون چندتا پلاگین واسه جوملا گذاشتن ولی خوب یکی مثل من که از جوملا چیزی نمیدونه چطور میتونه اونو تجزیه و به دلخواه تنظیم کنه

    ازتون بسیار ممنون میشم که این بحث رو ادامه بدید و یه مرجع خوب حداقلش برای شروع این کار ایجاد کنید
    بازم تشکر

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  5. #3

    تاریخ عضویت
    Nov 2010
    نوشته ها
    5,091
    تشکر
    0
    تشکر شده 2,056 بار در 1,618 ارسال
    چشم
    اين موضوع رو با zarinpal شروع ميكنم. همونجوری كه دوستمون در خواست كردند.
    zarinpal از دو نوع سيستم بهره می گيره. يكی simple way وديگری webservise كه هر كدومش خواص خودشون رو دارند
    در SimpleWay شما نيازی به توابع خاص نداريد. هر سيستمی رو بخواييد می تونيد وصل كنيد. كد زير رو در نظر بگيريد:
    کد:
    <form action="https://www.zarinpal.com/webservice/Simplepay" method="post" id="TransactionAddForm">
        <input type="hidden" id="TransactionAccountID" value="zp.11670" name="data[Transaction][account_id]">
        <input type="hidden" id="TransactionAmount" value="1000" name="data[Transaction][amount]">
        <input type="hidden" id="TransactionDesc" value="توضيح تراکنش واريزی" name="data[Transaction][desc]">
        <input type="hidden" id="TransactionRedirectUrl" value="http://www.joomlafarsi.com" name="data[Transaction][redirect_url]">
        <div class="submit"><input type="image" src="http://www.zarinpal.com/img/merchant/merchant-6.png"></div>
    </form>
    كلاً دو تا چيز اينجا مهمه. يكی مبلغه (1000) يكی Redirect page.
    مبلغ رو از طريق خود جوملا دريافت ميكنه و شما بايد براش معرفی كنيد كه چه چيزی رو از ديتابيس دريافت كنه به عنوان مبلغ
    آدرس مشترك هم با Zp تعيين ميشه كه اين هم ميشه در Xml تعريف كرد كه چه فيلدی در مديريت پلاگين ها به عنوان فيلد مشترك در نظر گرفته بشه
    اما Redirect page ....
    اين redirect آدرسی هست كه شما بعد از پرداخت بايد به اون هدايت بشيد.
    اين كد برای 2chekout هستش كه بساری از تغييرات رو می تونيد از رو خود همين فيلد ببينيد:
    کد:
    $transaction->custom = md5($transaction->params.' '.time());
            $url = $this->_params->get('routine') ? 'https://www.2checkout.com/checkout/purchase' : 'https://www.2checkout.com/checkout/spurchase';
    $html = '';        
            $html .= '<p>'.JText::_('RSM_PLEASE_WAIT_REDIRECT').'</p>';
            $html .= '<form method="post" action="'.$url.'" id="twocoForm">';
            if (!$this->_params->get('mode'))
                $html .= '<input type="hidden" name="demo" value="Y" />';
            $html .= '<input type="hidden" name="fixed" value="Y" />';
            $html .= '<input type="hidden" name="sid" value="'.htmlentities($this->_params->get('id')).'" />';
            
            if ($this->_params->get('message_type'))
                $html .= '<input type="hidden" name="cart_order_id" value="'.htmlentities($membership->name).'" />';
            else
                $html .= '<input type="hidden" name="cart_order_id" value="'.htmlentities(JText::sprintf('RSM_MEMBERSHIP_PURCHASE_ON', date(RSMembershipHelper::getConfig('date_format'), $transaction->date))).'" />';
            
            $html .= '<input type="hidden" name="total" value="'.htmlentities($this->_convertNumber($transaction->price)).'" />';
                
            $html .= '<input type="hidden" name="x_receipt_link_url" value="'.JRoute::_(JURI::root().'index.php?twocopayment=1').'" />';
            $html .= '<input type="hidden" name="custom" value="'.htmlentities($transaction->custom).'" />';
            $html .= '<input type="hidden" name="return_url" value="'.JRoute::_(JURI::root().'index.php?option=com_rsmembership&task=thankyou').'" />';
            $html .= '</form>';
            
            $html .= '<script type="text/javascript">';
            $html .= 'function twocoFormSubmit() { document.getElementById(\'twocoForm\').submit() }';
            $html .= 'try { window.addEventListener ? window.addEventListener("load",twocoFormSubmit,false) : window.attachEvent("onload",twocoFormSubmit); }';
            $html .= 'catch (err) { twocoFormSubmit(); }';
            $html .= '</script>';
    خب خيلی ساده شد قضيه:
    آدرس پرداخت آسان زرين پال رو ببينيد:
    اين آدرسه:
    [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
    قبل از اون يه نكته ای رو بگم:
    يه اصطلاحی بين بانكی ها هست به نام Sand Box. اين حالت تستی برای تراكنشه. يعنی پرداخت 1ريالی( به اصطلاح ما) برای تست درگاه. اين روش رو زرين پال نداره
    در 2checkout اين كار انجام ميشه و آدرس:
    [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
    همون كار رو انجام ميده
    پس اون دوتا گزينه پرداخت در 2checkout در زرين پال عين هم ميشه
    آدرس redirect هم :
    index.php?option=com_rsmembership&task=thankyou
    شناسه زرين پال هم در زرين پال با اين فيلد فراخونی ميشه TransactionAccountID. مشابه اون در 2checkout همون Secret Code
    و يك سری پارامترها كه ديگه تشخيصش با شماست.
    در نوع دوم شما بايد تابع Soap رو در افزونه include كنيد. اين كار زحمت زيادی داره و خيلی وقت گير هست

    موراد خيلی زياد هست و در اين انجمن گنجايش نداره. از طرفی هم اين افزونه تجاريست. بعد ها در بخشی مناسب تر آموزش اتصال به بانك پاسارگاد رو خواهم نوشت.

    كلاً مهندسی معكوس يعنی اينكه شما دوتا كد رو ببينيی و تشخيص بدی كه چه چيزی رو بايد تغيير بدی. البته اين هم خودش مهارت ميخواد ولی دانش فنی زيادی نمي خواد
    در آزمايشگاه زرين پال شما می تونيد توابع اين شركت رو ببينيد و بيشتر متمركز بشيد روش

    موفق باشيد

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  6. 4 کاربر زیر از safajuy عزیز به خاطر این پست مفید تشکر کرده اند.


  7. #4

    تاریخ عضویت
    May 2011
    محل سکونت
    Boot Strap Loader
    نوشته ها
    74
    تشکر
    18
    تشکر شده 7 بار در 6 ارسال
    دست شما درد نکنه و واقعا خسته نباشید کار بسیار مفید و با ارزشی بود
    من فعلا قصد راه اندازی فروشگاه ندارم ولی خوب تا تاریخ تاپیک قدیمی نشده و ارسال مطلب بهش برخلاف قوانین بپرسم که بعدا به کارمون بیاد

    برای کویری گرفتن از سرور بانک یا همین زرین پال چطور باید عمل کرد ؟؟؟ همون صحت پرداخت رو منظورم هست . چطور بعد از برگشت به سایت چک کنیم که پرداخت انجام شده ؟ و با شرط عملیات خاصی رو انجام بدیم

    تشکر

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  8. #5

    تاریخ عضویت
    Nov 2010
    نوشته ها
    5,091
    تشکر
    0
    تشکر شده 2,056 بار در 1,618 ارسال
    اين عمليات در كامپوننت ها متفاوت هستش.
    مثلاً برای كامپوننت payperdownload طبق اسناد زير :
    [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
    پس از پرداخت به اين آدرس منتقل شويد:
    index.php?option=com_payperdownload&task=confirm
    اين مورد در همه افزونه ها هست و كاربر با نشستی كه براش تعيين ميشه ارتقا كاربری پيدا ميكنه و سيستم خريد رو انجام ميده

    اينجوری كامپوننت متوجه ميشه كه شما پرداخت كرديد. البته اين رو هم بگم يه محيط بازگشت برای بانك هم تعريف شده. اين محيط در بانك پاسارگاد اين آدرس هستش:
    [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
    اين آدرس در مرحله آخر يه فاكتور براتون صادر ميكنه و بعد از صدور فاكتور شما رو به به سايت هدايت ميكنه. در واقع ما دوتا آدرس بازگشت داريم. يكی پس از تراكنش در بانك هست و ديگری پس از تراكنش در سايت. اين پروسه رو من در بانك پاسارگاد ديدم:
    اجرای دستور خريد از سايت گيرنده-->چك كردن امضای ديجيتالی و دستور ايجاد فاكتور-->انتقال به سايت بانك-->چك كردن بانك از صحت اطلاعات و صدور فاكتور-->بازگشت به سايت فروشنده

    من به شخصه بانك پاسارگاد رو برای گسترش ترجيح ميدم. علتش سادگی گسترشه و مهم نبودن آی پی*سرور. شما حتی از لوكال هم می تونی وصل بشی

    موفق باشيد

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  9. کاربر مقابل از safajuy عزیز به خاطر این پست مفید تشکر کرده است:


  10. #6

    تاریخ عضویت
    May 2011
    محل سکونت
    Boot Strap Loader
    نوشته ها
    74
    تشکر
    18
    تشکر شده 7 بار در 6 ارسال
    در مورد حقیقی و حقوقی چطور ؟ چون وقتی با سامان صحبت میکردم گفتن که حتما باید حقوقی باشید و به افراد حقیقی داده نمیشه

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  11. #7

    تاریخ عضویت
    Nov 2010
    نوشته ها
    5,091
    تشکر
    0
    تشکر شده 2,056 بار در 1,618 ارسال
    من با صحبت هایی كه با بانك داشتم گفتن هر چيزی كه حكم مجوز رو داشته باشه قبوله.
    به همين خاطر يه سيستم جديدی گذاشته شده كه در اين تاپيك توضيح داده بودم قبلاً:

    [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


موضوعات مشابه

  1. مشكل در اتصال به بانك اطلاعاتي
    توسط vahid64 در انجمن سوالهای عمومی جوملا 1.5 فارسی
    پاسخ ها: 2
    آخرين نوشته: 04-16-2011, 08:28 AM
  2. سوال در مورد ماژول ها ي اتصال به بانك
    توسط soheylsoft در انجمن سوالهای عمومی جوملا 1.5 فارسی
    پاسخ ها: 6
    آخرين نوشته: 03-02-2011, 12:22 PM
  3. درخواست يك فرم ساز با قابليت اتصال به بانك
    توسط sattaribm در انجمن کامپوننت های جوملا 1.5 فارسی
    پاسخ ها: 3
    آخرين نوشته: 06-10-2010, 10:17 AM
  4. چگونگی اتصال به بانک
    توسط parsiv_tereng در انجمن متفرقه
    پاسخ ها: 5
    آخرين نوشته: 04-29-2010, 08:23 AM
  5. مشكل در اتصال به بانك اطلاعاتي
    توسط ASA در انجمن سوالهای عمومی مامبو فارسی
    پاسخ ها: 3
    آخرين نوشته: 04-29-2008, 08:43 PM

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •