صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 42

نام تاپیک: پرداخت الکترونیکی (شتاب)

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123

    پرداخت الکترونیکی (شتاب)

    با سلام خدمت همگی دوستان

    میخواستم تو این تایپیک نحوه استفاده از وب سرویس شبکه بانکی شتاب را مطرح کنم .
    و به ارایه شرح خدمات وب سرویس ها همراه با کد های پیاده سازی بپردازم.
    اساتید بزرگوار هم اگر همراهی کنند ، تاپیک مفیدی خواهد شد
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    سلام

    اگر ممکنه اون pdf هایی که برای اتصال هست رو هم لطف کنید در ضمن من حاضر به هرگونه همکاری هستم . در ضمن من تجربه اتصال به بانکهای خارجکی رو هم دارم البته اون خیلی فلاکت داره

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123
    این نوشته قدم‌های لازم برای ایجاد بستر پرداخت با استفاده از رسید دیجیتالی را در سمت فروشنده بر می‌شمارد.

    1. تعریف اجزای سیستم
    اجزای مربوط به خریدار
    اجرای مربوط به فروشنده
    اجزای مربوط به شبکه بانکی

    2. نیازمندی‌های امنیتی و بانکی
    نیازمندی‌های امنیتی
    نیازمندی‌های بانکی

    3. بسترسازی سمت فروشنده
    انجام تراکنش
    برگشت تراکنش
    پشتیبانی مشتریان


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

    خریدار
     خریدار: موجودیتی که تقاضای خرید سرویس یا کالا دارد.
     کارت: وسیله ای برای برداشت و خرید در فروشگاه یا اینترنت توسط خریدار.

    فروشنده
     فروشنده: موجودیتی که سرویس یا کالا را در اختیار خریدار قرار می‌دهد.
     کد فروشنده (Merchant ID): ترکیب Terminal ID و Acceptor ID که توسط بانک به فروشنده اختصاص می‌یابد.

    شبکه بانکی
     تراکنش (Transaction): یک عملیات مالی، که در این نوشته مصداق آن یک خرید می‌باشد.
     سایت شبکه بانکی: سایتی متعلق به بانک سامان می‌باشد که در آن خریدار مشخصات کارت و رمز آن را وارد می‌نماید و انتقال مبلغ خرید به سپرده فروشنده را تایید می‌نماید و در صورت موفقیت‌آمیز بودن انتقال، یک رسید دیجیتالی برای آن انتقال صادر شود.( در واقع این کار می تواند به عنوان بخشی از وظایف ماشین پذیرنده در نظر گرفته شود)
     رسید دیجیتالی (Reference Number): یک سلسله‌ی بیست کاراکتری که سایت شبکه بانکی به عنوان رسید پس از انجام یک تراکنش به فروشنده و خریدار ارائه می‌دهد.
     شماره رزرو (Reservation Number): کدی که فروشنده برای هر تراکنش خریدار در نظر می‌گیرد و خریدار می‌تواند توسط آن کد، خرید خود را پیگیری کند. (در واقع مشخصه تراکنش در سمت فروشنده است.)




    2. نیازمندی‌های امنیتی و بانکی
    قبل از پرداختن به موضوع نیازمندیها احتیاج به تعریف گواهینامه امنیتی (SSL certificate) می باشد. گواهینامه امنیتی یک نوع روش کدگذاری (Encryption) آنلاین به روی تمامی اطلاعات و فایلهایی می باشد که مابین وب سایت و کاربر رد و بدل می شود. این نوع کدگزاری بالاترین سطح امنیت در اینترنت برای انتقال داده ها می باشد. در این نوع روش برای امن کردن داده ها روی وب هنگام صدا زدن وب سایت مورد نظر از پروتکل https (Secure http) به معنای وب امن به جای http استفاده می شود. به طور مثال با آدرس http://www.sb24.com اطلاعات به صورت غیر کدشده و معمولی رد و بدل می شود در حالی که با آدرس https://www.sb24.com اطلاعات به صورت کدشده مابین وب سایت و کاربر رد و بدل می شود. لازم بذکر است که وب سایتهایی این قابلیت را دارا می باشند که گواهینامه امنیتی خود را از مراکز صدور این گواهینامه ها تهیه کرده و روی وب سایت خود نصب کرده باشند.

    نیازمندی‌های امنیتی
    سایتهای بانک ( www.sb24.com و acquirer.sb24.com ) دارای گواهینامه های امنیتی معتبر می باشند و ارتباط خریدار با بانک , فروشنده با بانک می تواند در بستر SSL انجام شود. اگر فروشنده نیز دارای گواهینامه معتبری باشد، ارتباط بین خریدار و فروشنده نیز در بستر SSL و به صورت امن خواهد بود. اینکه فروشنده دارای گواهینامه معتبر باشد، اجباری نیست، بلکه بهتر است اینگونه باشد.
    نیازمندی امنیتی دیگر اینست که فروشنده از هیچ کدام از اطلاعات مالی خریدار ( مانند مشخصات کارت، کلمه رمز کارت، میزان موجودی و .... ) مطلع نشود. به همین خاطر فروشنده از خریدار هیچ نوع اطلاعات مالی و بانکی دریافت نمی کند و تمامی این اطلاعات توسط خریدار در سایت بانک وارد می شود.
    نیازمندی امنیتی دیگر این است که فقط فروشندگان مجاز قادر باشند که درخواست تایید یک تراکنش و درخواست برگشت خوردن یک تراکنش را صادر کنند. این امر با قرار دادن یک فایروال جلوی ماشین گردآورنده (Acquirer) محقق شده است و آدرس IP فروشنده باید به بانک داده شود، تا اجازه دسترسی برای آن صادر شود.
    برای اطمینان از هویت فروشنده در هنگام درخواست برگشت خوردن سند، کلمه رمزی به فروشنده داده می شود که در هنگام برگشت زدن یک تراکنش باید به ماشین درگاه پرداخت (Payment gateway) داده شود. ( این کلمه رمز در هنگام راه اندازی فروشنده برای بار اول از طرف بانک به فروشنده داده می شود)

    نیازمندی‌های بانکی
    فروشنده باید سپرده‌ای را نزد یکی از بانک‌های عضو شتاب افتتاح نماید و آن را به عنوان "سپرده فروشنده" به بانک سامان معرفی نماید. بانک سامان نیز به وی یک شماره Merchant ID اختصاص خواهد داد که در هر تراکنش فروشنده خود را با ارائه این شماره به بانک معرفی می‌کند.

  4. #4
    مثال اتصال به بانک سامان.البته این مثال ها رو خود سامان بر حسب زبان مورد نظرتون در اختیارتون میگذاره.
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123

    نمونه کد

    از اساتید محترم اگر کسی کدهای مربوط به Shopping Card و کار با وب سرویس ها را باهاش قبلآ کار کرده ، ارایه کنه ممنون میشم !
    اون مثال خود سامان خیلی ساده و پیش افتاده هستن و اکثرآ کدپیج صفحاتش بهم خورده

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123

    بسترسازی سمت فروشنده

    3. بسترسازی سمت فروشنده
    انجام تراکنش
    فروشنده خریدار را به نقطه‌ای می‌رساند که آماده دریافت پول و نهایی کردن خرید می‌باشد. در این نقطه فروشنده باید مراحل زیر را دنبال نماید:
    1.فروشنده , خریدار را به وب سایت شبکه بانکی می فرستد : خریدار به وب سایت شبکه بانکی فرستاده (Redirect) می شود. اهم پارامترهایی که به این سایت به صورت متد POST داده می شود عبارتند از:
    i. Total Amount
    ii. Merchant ID
    iii. Reservation Number
    iv. Redirect URL

    Total Amount مبلغ خرید می باشد که فروشنده می خواهد از خریدار دریافت نماید. Merchant ID کد فروشنده است که برای شناسایی فروشنده در هر تراکنش لازم است. فروشنده بهتر است از Reservation Number بجای session و cookie برای تعقیب رفت و برگشت خریدار به وب سایت بانک استفاده کند. آدرس شبکه بانکی برای ارسال پارامترها https://www.sb24.com/CardServices/controller می باشد. همانطور که مشاهده می شود این وب سایت از پروتکل وب امن و گواهینامه امنیتی استفاده می کند.

    2.خریدار مشخصات کارت و رمز آن را در فرم مخصوص وارد می کند : در وب سایت شبکه بانکی، خریدار اطلاعات کارت خود را شامل بر موارد زیر باید وارد کند:
    i. شماره کارت (PAN)
    ii. کلمه عبور (PIN)
    iii. تاریخ انقضای کارت (Expire Date)
    iv. CVV2

    توجه : موارد بالا در وب سایت شبکه بانکی پیاده سازی شده و فروشنده هیچ کار خاصی در موارد بالا ندارد.

    3.وب سایت شبکه بانکی خریدار را به وب سایت فروشنده می فرستد: وب سایت شبکه بانکی پس از اتمام تراکنش، خریدار را دوباره به سایت فروشنده به آدرس RedirectURL می فرستد (Redirect می کند) و فروشنده پارامترهای پاس شده از وب سایت شبکه بانکی را با متد POST دریافت می‌کند. پارامترهای ارسالی عبارتند از:
    i. Transaction State
    ii. Reference Number
    iii. Reservation Number

    فروشنده می‌تواند بر اساس وضعیت تراکنش، موفقیت‌آمیز بودن تراکنش را تشخیص دهد.
    فروشنده وضعیت تراکنش را تشخیص می دهد و آنرا چک می نماید: از روی فیلد وضعیت تراکنش فروشنده می تواند متوجه شود که آیا پرداخت موفقیت آمیز بوده است یا خیر. اگر خرید موفقیت آمیز نبود فروشنده موظف است خطای به وجود آمده را با توجه به فیلد وضعیت تراکنش برای خریدار شرح دهد و به او دقیقا بگوید چه اتفاقی روی داده است. اگر وضعیت تراکنش OK بود، فروشنده رسید دیجیتالی (Reference Number) را در پایگاه‌ داده خود جستجو می‌کند. این کار به منظور جلوگیری از Double Spending یا دوبار مصرف شدن یک رسید دیجیتالی می باشد.این مسئله کاملا به عهده فروشنده می باشد زیرا این رسید دیجیتالی به صورت منحصر به فرد (Unique) از طرف بانک صادر می شود و بانک در برابر دو بار مصرف شدن رسید دیجیتالی هیچ عکس العملی را نشان نمی دهد. در صورت عدم وجود آن در بانک اطلاعاتی فروشنده، Verify Web Methodرا با پارامترهای زیر صدا می‌زند:
    ii. Reference Number
    iii. Merchant ID

    فروشنده باید این متد را صدا زند و به نتیجه دریافتی از تراکنش اکتفا ننماید. مقدار برگشتی این تابع باید برابر مقدار کل خرید (Total Amount) باشد و در غیر این صورت تراکنش دارای مشکل می باشد. با مقایسه این مبلغ و مبلغ فاکتوری که فروشنده خود در اختیار دارد 4 حالت زیر ممکن است به وجود آید:
    i.اگر این دو مبلغ برابر باشند، فروشنده می تواند سرویس خود را ارایه نماید. (مرحله5)
    ii.اگر مبلغ پرداختی کمتر از مبلغ فاکتور فروشنده باشد، فروشنده می تواند پس از اعلام به خریدار، کل سند را برگشت بزند.
    iii.اگر مبلغ پرداختی بیشتر از مبلغ فاکتور نزد فروشنده باشد، فروشنده می تواند پس از اعلام به خریدار، ما به التفاوت سندها را برگشت بزند.
    iv.خروجی این تابع اگر منفی باشد بیانگر رویداد خطایی می باشد که شرح این خطاها نیز در ضمیمه ب آورده شده است.



    4.تکمیل روند خرید: در صورت درست بودن تراکنش، فروشنده رسید دیجیتالی را در رکورد مربوط به آن Reservation Number (که قبل از تراکنش به عنوان یک پارامتر به بانک پاس داده شده و بعد از تراکنش وب سایت بانک به فروشنده پاس داده است) در پایگاه داده‌ خود ذخیره می‌کند. در صورت درست نبودن مبلغ انتقالی نیز رسید دیجیتالی ذخیره می‌شود تا خریدار بتواند درخواست برگشت آن را به فروشنده ارائه دهد هرچند عملا نباید این حالت بوجود آید.

    نکات:
    الف) دوباره تاکید می‌شود که مصرف شدگی رسید دیجیتالی در سمت فروشنده تعیین و نگه‌داری می‌شود و نه در سمت بانک. بانک تنها اعتبار و مبلغ برگشت نخورده رسید دیجیتالی را گزارش می‌دهد. بدین ترتیب بانک می‌تواند مشخصات یک رسید دیجیتالی را چندین بار به فروشنده گزارش دهد بدون آن‌که وضعیت مصرف‌شدگی آن تغییر کند. حسن این روش در این است که اگر فروشنده‌ای یک رسید دیجیتالی را برای اعتبارسنجی به بانک بدهد و بانک نیز نتیجه را برای فروشنده ارسال دارد ولی این جواب به هر دلیلی به دست فروشنده نرسد، رسید دیجیتالی اعتبار خود را از دست نخواهد داد و فروشنده می تواند دوباره تقاضای اعتبارسنجی نماید و در صورت مثبت بودن نتیجه آن را در پایگاه داده خود ذخیره کرده و وضعیت رسید تراکنش را به مصرف شده تغییر دهد.
    ب‌)در صورتی که جواب تابع verifyTransaction به هر دلیلی به دست فروشنده نرسد(Timeout شود، مشکل شبکه پیش آمده باشد و ... ) فروشنده باید به تعداد مشخصی مجددا سعی نماید. دقت شود تکرار در صورتی باید انجام شود که جواب به دست فروشنده نرسد، نه اینکه نتیجه verifyTransaction نشان دهنده خطا باشد ( منفی باشد). بعد از تعداد مشخصی تلاش از جانب فروشنده اگر هنوز جواب دریافت نشد، فروشنده باید سعی کند تراکنش را به طور کامل برگشت بزند.
    ت‌)در صورتی که تراکنش به هر دلیلی در مدت زمان مشخصی ( در حال حاضر حداقل 1 ساعت و حداکثر 2 ساعت) از جانب فروشنده تایید نشد، بانک اقدام به برگشت زدن تراکنش خواهد کرد.
    ث‌)در این روشِ پرداخت، امکان اینکه یک رسید دیجیتالی در دو فروشنده‌ی مختلف استفاده شود، وجود ندارد، چراکه جلوی این مساله در بانک و با توجه به شماره IP و شماره سپرده فروشنده گرفته می شود.
    ج‌)مسولیت جلوگیری از Double Spending بر عهده فروشنده است و در صورت ضعفی در پیاده‌سازی سایت فروشنده، ضرر آن متوجه خود اوست.
    ح‌)امنیت این بخش از سیستم به کمک SSL و ACL تامین شده است.
    خ‌)مدیریت ریسک این بخش با استفاده از سقف‌های برداشت برای موجودیت خریدار و الگوهای فروش برای فروشنده صورت می‌گیرد. خریدار با تعیین سقف انتقال سپرده‌های خود می‌تواند میزان ریسک سپرده‌های خود را مدیریت نماید. همچنین فروشنده با معرفی الگوی فروش خود به بانک، حداکثر مبالغ فروش خود را معرفی می‌نماید.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123

    برگشت تراکنش

    برگشت تراکنش
    فروشنده می‌تواند امکان لغو خرید را پیاده‌سازی کند. این امکان ممکن است به دو صورت مورد نیاز واقع شود:
    •فروشنده لغو یک خرید را لازم بداند (برای مثال ممکن است فروشنده دیگر کالا یا سرویس مورد نظر خریدار را برای تحویل نداشته باشد).
    •خریدار مایل به لغو خرید باشد.

    در هر یک از دو حالت بالا، فروشنده می‌تواند یک خرید را به دو صورت برگشت زند:
    1.برگشت کامل (Full Reverse): سند به صورت کامل برگشت خورده سپرده خریدار به مبلغ خرید بستانکار می‌شود و سپرده فروشنده به مبلغ خرید بدهکار. برای این کار فروشنده باید با استفاده از پایگاه‌داده خود، رسید دیجیتالی مربوط به Reservation Number مورد نظر خود را استخراج نماید و سپس با چک کردن وضعیت برگشت‌خوردگی آن مطمئن شود که قبلا برگشت جزئی یا کامل نخورده باشد (البته این چک برای صرفه‌جویی در ارتباطات شبکه‌ای است وگرنه این چک در سمت بانک نیز صورت می‌گیرد). وی سپس Reverse Web Method را با پارامترهای ذیل فرا خواهد خواند:

    i. Merchant ID
    ii. Merchant Password
    iii. Reference Number
    iv. Reverse Amount = Total Amount of Invoice

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

    2.برگشت ناقص (Partial Reverse): فروشنده بخشی از مبلغ خرید را برگشت می‌زند. برای این کار فروشنده بر اساس Business Ruleهای خود مبلغ برگشتی را محاسبه می‌کند و با استفاده از پایگاه‌داده خود، رسید دیجیتالی مربوط به Reservation Number مورد نظر خود را استخراج می‌نماید. سپس فروشنده باید وضعیت برگشت خوردگی رسید دیجیتالی را چک کند و تنها در صورتی آن را برای برگشت جزئی استفاده نماید که یا پیشتر برگشت جزئی نخورده باشد و یا مبلغ برگشتی به اضافه مبالغ برگشت‌های جزئی پیشین از کل مبلغ سند بیشتر نباشد (البته این چک کردن نیز برای صرفه‌جویی در ارتباطات شبکه‌ای است چراکه این چک در سمت بانک نیز صورت می‌گیرد). در این صورت فروشنده می‌تواند همان Reverse Web Method را با پارامترهای ذیل فراخواند:
    i. Merchant ID
    ii. Merchant Password
    iii. Reference Number
    iv. Reverse Amount = Desired Reverse Amount

    مقدار برگشتی این متد کدی است که نتیجه برگشت را نشان می‌دهد. در این حالت فروشنده باید پایگاه‌داده خود را به روز نماید و وضعیت رسید دیجیتالی مربوط به آن Reservation Number را برگشت خورده نماید تا برگشت‌های جزئی بعدی را مدیریت نماید.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123

    درخواست

    سلام !
    از دوستان کسی کد دات نت استفاده از وب سرویس ها داره ؟

  9. #9
    نقل قول نوشته شده توسط EHSH مشاهده تاپیک
    سلام !
    از دوستان کسی کد دات نت استفاده از وب سرویس ها داره ؟
    یعنی چی کد دات نت ؟؟

    شما برای استفاده از وب سرویس , اول باید یک web reference بسازی که این رفرنست
    به همون وب سرویست اشاره میکنه .

    بعد شما میای یه متغیر از نوع این وب سرویس تعریف میکنی و بعدش که دیگع راحت .
    با این متغیره میتونی متدها وب سرویس رو اجرا کنی.

    موفق باشید

  10. #10
    کاربر دائمی
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    اصفهان
    پست
    123
    نقل قول نوشته شده توسط SIR_asad مشاهده تاپیک
    یعنی چی کد دات نت ؟؟

    شما برای استفاده از وب سرویس , اول باید یک web reference بسازی که این رفرنست
    به همون وب سرویست اشاره میکنه .

    بعد شما میای یه متغیر از نوع این وب سرویس تعریف میکنی و بعدش که دیگع راحت .
    با این متغیره میتونی متدها وب سرویس رو اجرا کنی.

    موفق باشید
    با سلام !
    خوب بعد از اینکه WebService به رفرنس Add کردیم باید ، کاربر را به دروازه پرداخت بفرستیم . بعد بانک به صفحه Redirect URL نتیجه Transaction را برمیگردونه :
    1 ) ما نمیدونیم کاربر چقدر در صفحه بانک میماند و احتمال زیاد session ما timeout میخوره .
    2 ) شبکه شتاب با یه رسید دیجیتالی 20 کاراکتری کار میکنه ، حالا چه جوری ما با این رسید و seesion سایت فروشنده کارکنیم ؟
    3) وضعیت تراکنش (موفقیت یا شکست) را چه جوری کنترل کنیم و تراکنش را تایید یا برگشت بزنیم ؟

  11. #11
    سلام جناب iekrang
    با تشکر از فایل هایی که در مورد پرداخت شتاب گذاشتید
    می خواستم اگه ممکنه در مورد هر کدوم از اون 6 تا فایل یه توضیح بدین که هر کدوم مربوط به کدوم قسمت کاره و چه کاری انجام میده؟؟
    در ضمن کدوم فایل ها رو خود بانک به ما میده؟
    من زیاد xml کار نکردم بعضی از اون فایل xml بود آیا برای این کار لازم xml رو هم کامل یاد داشته باشم یا در حد همین asp.net و کد نویسی با vb کافیه؟
    در بعضی قسمت های کد از session استفاده شده آیا محدیت زمانی session مشکلی ایجاد نمیکنه؟
    با تشکر فراوان از شما عزیز

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    Tehran
    پست
    109
    نقل قول نوشته شده توسط EHSH مشاهده تاپیک
    با سلام !
    خوب بعد از اینکه WebService به رفرنس Add کردیم باید ، کاربر را به دروازه پرداخت بفرستیم . بعد بانک به صفحه Redirect URL نتیجه Transaction را برمیگردونه :
    1 ) ما نمیدونیم کاربر چقدر در صفحه بانک میماند و احتمال زیاد session ما timeout میخوره .
    2 ) شبکه شتاب با یه رسید دیجیتالی 20 کاراکتری کار میکنه ، حالا چه جوری ما با این رسید و seesion سایت فروشنده کارکنیم ؟
    3) وضعیت تراکنش (موفقیت یا شکست) را چه جوری کنترل کنیم و تراکنش را تایید یا برگشت بزنیم ؟
    من با پارسیانش کار کردم اینجوری بود :
    1- یک شماره یکتا می سازی
    2- شماره ات رو برای سرویس بانک با PIN میفرستی
    3- مشتری رو با ID که در مرحله 2 از بانک برات فرستاده شده به سایت بانک میفرستی
    4- توی صفحه بازگشت شماره ات رو با یک متد دیگه تست میکنی که ترنزکشن انجام شده یا نه .
    5- اگر انجام شده که شما رو به خیر و بانک رو به سلامت ، در غیر اینصورت اون شماره رو برگشت میزنی ( برای اطمینان )
    این روند خیلی قشنگ پیاده سازی شده ، یک اشکالی هست و اون هم اینه که نتونستم این رو بدون ارسال روی هاست تست کنم ، چون سرویس بانک IP وب سرور شما رو توی فایروالش اضافه می کنه و به IP های ناشناس جواب همون مرحله 2 رو هم نمیده . ( البته این هم از نظر امنیتی امکان خوبیه )
    در کل به نظرم بهتره که با خود بانک در مورد این مسایل صحبت کنی ، توی راهنماهاشون هم چیزهای خوبی مثل مثال وجود داره ، اگر چه کمی گنگ نوشته شده ولی مشکلاتت رو حل میکنه .

  13. #13
    شما پس از بستن قرارداد بانک سامان یک MerchantID در اخیار شما میزاره .

    برای ارسال کاربر برای خرید اول باید پارامترها را به صورت post به آدرس https://acquirer.sb24.com/CardServices/controller ارسال کنید .

    مثال :

    <form action="https://acquirer.sb24.com/CardServices/controller" method="post">


    <input name="Amount" type="hidden" value="100" /> مبلغ به ریال

    <input name="ResNum" type="hidden" value="30" /> شماره سفارش که شما باید ارسال کنید

    <input name="MID" type="hidden" value="111111-11111" /> آی دی که سامان داده

    <input name="RedirectURL" type="hidden" value="http://site.com/callback.aspx" /> آدرس برگشتی پس از خرید





    <input name="Button1" type="submit" value="button" />



    </form>



    در صفحه Callback هم از کد زیر استفاده کنید :



    Dim RefNum As String = HttpContext.Current.Request.Params("RefNum")
    Dim ResNum As String = HttpContext.Current.Request.Params("ResNum")
    Dim State As String = HttpContext.Current.Request.Params("State")

    If Not (RefNum Is Nothing) Then

    ' saman code


    If State = "OK" Then

    If RefNum = "" Then

    lbl.Text = "گویا خرید شما توسط بانک تایید شده است اما رسید دیجیتالی شما تایید نگشت"

    Else


    Dim PaymentWebService As New SamanWebService.ReferencePayment
    Dim Result As Double = PaymentWebService.verifyTransaction(RefNum, "1111-11111")


    If Result > 0 Then





    G.PayPaidSaman(ResNum, RefNum)



    lbl.Text = "خرید با موفقیت انجام شد"




    Else

    lbl.Text = "مشکلی در تایید خرید شما وجود دارد . کد خطا : " & Result


    End If



    End If


    Else

    lbl.Text = "متاسفانه بانک خرید شما را تایید نکرده است : " + State
    End If




    اگر مشکلی بود هستم در خدمتتون

  14. #14

    نمونه کد پارسیان

    بانک پارسیان پس از قرارداد LoginAccount در اختیار شما قرار خواهد داد .

    ارسال کاربر به دروازه پرداخت پارسیان :



    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    orderid = 31
    price = 4000
    CallBackPage = "http://site.com/callback.aspx"
    Dim service As New ParsianWebService.EShopService
    Dim status As Byte = 0
    Dim authority As Long = 0
    Try
    service.PinPaymentRequest(G.ParsianLoginAccount, price, orderid, CallBackPage, authority, status)
    ' G.PayUpdateBankCode(orderid, authority.ToString()) sabte authority code dar database
    If status = 0 Then
    Response.Redirect("https://www.pec24.com/pecpaymentgateway" + "?au=" + authority.ToString(), True)
    End If
    lbl.Text = "Status : " + (CType(status, PgwStatus)).ToString()
    Catch err As Exception
    lbl.Text = "ERROR : " + err.Message.ToString()
    End Try
    End Sub
    End Class


    در صفحه Callback هم از کد زیر استفاده کنید :



    ' parsian
    Dim authorityStr As String = HttpContext.Current.Request.Params("au")
    Dim rs As String = HttpContext.Current.Request.Params("rs")


    If Not (authorityStr Is Nothing) Then
    ' parsian code
    Dim service As New ParsianWebService.EShopService
    If rs = 0 Then
    Dim authority As Long = Long.Parse(authorityStr)
    Dim status As Byte = 0
    service.PinPaymentEnquiry(G.ParsianLoginAccount, authority, status)

    If status = 0 Then
    payid = G.GetPayID_BankCode(authorityStr)

    ' G.PayPaidParsian(payid) ok kardan karid dar db ba search bar asase authority ke avval kard save kardim dar db

    lbl.Text = "خرید با موفقیت انجام شد"

    Else
    lbl.Text = "بروز خطا : " + (CType(status, PgwStatus)).ToString()
    End If

    Else
    lbl.Text = perror
    End If
    '////
    End If


  15. #15
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    برادر پارسا گستر، از این کد جایی هم استفاده کردی؟! یعنی تست شده؟!
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  16. #16
    بله ، این کد در سایت ما استفاده شده است و هچ مشکلی ندارد

  17. #17
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    خوبه :)
    برنامه تون باگ امنیتی داره، اگر خواستی تو همین انجمن با من تماس بگیر تا بهت کمک کنم و هر وقت سایت هات درست شدند، بعد اینجا پابلیک اش می کنیم :)
    خواستم برم سایتت رو تست کنم، بهم ارور داد:

    ERROR : Request for the permission of type 'System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  18. #18
    من کد اصلی سایت را نذاشتم فقط کد ارتباط با وب سرویس بانک ها را گذاشتم . کدهای مربوط به دیتابیس را حذف کردم وگرنه کد اصلی خیلی بیشتره .

  19. #19
    نقل قول نوشته شده توسط oxygenws مشاهده تاپیک
    خوبه :)
    برنامه تون باگ امنیتی داره، اگر خواستی تو همین انجمن با من تماس بگیر تا بهت کمک کنم و هر وقت سایت هات درست شدند، بعد اینجا پابلیک اش می کنیم :)
    خواستم برم سایتت رو تست کنم، بهم ارور داد:

    ERROR : Request for the permission of type 'System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

    شما به آدرس سایت اصلی رفتید که بله قسمت سفارش آنلاین فعلا غیر فعال است .

    آدر سایتی که ما برای پرداخت اینترنتی نوشتیم pay.parsagostar.com می باشد که دروازه پرداختی است برای کلیه سایت های ما که کد سفارش توسط QueryString ارسال می شود .

    برای مثال :

    http://pay.parsagostar.com/?order=36b4d8a1767444d19bfb

  20. #20
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1384
    پست
    33

    Question اینا که گفتید هیچ کدوم نشد

    من اون کدها را که گذاشته بودید را با visual studio2005 باز کردم کلی خطا داد و نشد که وارد حالت design بشم اومدم web service را اضافه کنم آدرس https://www.sb24.com/CardServices/controller یا
    https://www.sb24.com بهش دادم ولی هیچی پیدا نکرد بابا به جای این همه اطلاعات در هم و برهم مفید یکی بیاد بگه منی که الان یه سایت دارم دقیقا و مرتب چه کارایی بکنم تا بتونم از این امکاناتی که گفتید استفاده کنم . من الان نمیدونم چهطور web service را اضافه کنم و چه صفحات وبی میخوام توشون چی باشه هدفسون چیه و از همتونم به خاطر اطلاعاتی که گذاشته بودید ممنونم ...

  21. #21
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    برای چه زبونی می خوای؟!!
    اگر با خود asp.net و وب سرویس هاش مشکل داری، برو تو بخش مربوطه بپرس.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  22. #22
    کاربر دائمی آواتار GentleGuy
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    فرنگ
    پست
    243
    سلام
    چند تا سئوال در زمینه پرداخت الکترونیکی داشتم
    امیدوارم اساتید لطف کرده و جواب دهند
    1. آیا بانک سامان درصدی را بابت هر خرید به عنوان کارمزد کسر میکند؟این مبلغ چند درصد هست؟
    2.آیا برای استفاده از پروتکل پرداخت اینترنتی باید با بانک مذاکره کرد و فرارداد بست؟
    3.آیا بانک مدارک خاصی برای "ارائه مجوز استفاده از پروتکل" درخواست میکند؟
    4.آیا دریافت مجوز و پروتکل هزینه اولیه دارد؟
    با تشکر

  23. #23
    کاربر دائمی آواتار GentleGuy
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    فرنگ
    پست
    243
    . آیا بانک سامان درصدی را بابت هر خرید به عنوان کارمزد کسر میکند؟این مبلغ چند درصد هست؟
    2.آیا برای استفاده از پروتکل پرداخت اینترنتی باید با بانک مذاکره کرد و فرارداد بست؟
    3.آیا بانک مدارک خاصی برای "ارائه مجوز استفاده از پروتکل" درخواست میکند؟
    4.آیا دریافت مجوز و پروتکل هزینه اولیه دارد؟
    کسی اطلاعاتی در این زمینه نداره؟؟؟

  24. #24
    1- بله بانک درصدی رو برای هر خرید دریافت می کنه که این درصد معمولا ناچیز هستش بین 2 الی 4 درصد
    2- بله باید درخواست بدید و با بانک قرارداد ببندید تا امکان استفاده از امکانات پرداخت اینترنتی رو بهتون بدن
    3- بستگی به این داره که به عنوان شخص حقیقی با حقوقی می خواد از این سرویس ها استفاده کنید هرکدوم مدارک و فرمهای خاص خودش رو داره
    4- هزینه سالیانه داره که اگه عوض نشده باشه 20000 تومان هستش

    این اطلاعات مربوط به بانک سامان هستش ولی خوب سایر بانکها هم تقریبا همین طوری هستن فقط مبالغ دریافتی شون یکم اینور اونور میشه.

  25. #25
    دوستان در مورد نحوه ی قرارداد با اداره پست جهت تحویل کالا اطلاعاتی دارند ؟
    آیا شرایط و تعرفه خاصی داره ؟
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  26. #26
    کاربر جدید آواتار marzieh57
    تاریخ عضویت
    تیر 1386
    محل زندگی
    تهران
    پست
    21
    سلام دوستان
    من با بانک پارسیان قرارداد دارم
    بانک کدهای مربوطه را برای من ارسال کرده . که از Soap در آن استفاده شده ، اما روی سروری که ما باهاش کار می کنیم نصب نیست
    حالا به نظرتون ما باید چی کار کنیم ؟

  27. #27

    کمک درباه وب سرویس بانک سامان

    با سلام به همگی
    در مورد وصل شدن به بانک سامان به یک مشکلی بر خوردم که هرچه تلاش کردم برطرف نشد خیلی ممنون می شم که کسی این مشکل رو بر طرف کنه

    تا آن جایی که به بانک برود و در بانک هم مشکلی نیست ولی موقع خوندن
    مقادیر را چک کردم مقدار های فرستاده شده و گرفته شده درست هستند . (تصویر 1)


    این در صورتی می باشد که قسمت کدهای بعدی وب سرویس رو کامنت کرده باشم ولی در صورتی که فعال باشد پیغام تصویر شماره 2 را می دهد
    ممنون می شم کسی من را یاری کند قطعه کد را هم می گزارم مکنه ایراد از کد باشه




    string strMess;
    string t_strRefNum;
    string t_strResNum;
    double TA;
    WebServices.ReferencePayment PaymentWebService = new WebServices.ReferencePayment();
    string MID = "XXXXXX-XXXX";

    double t_lAmount ;
    string isError;
    string strMsg;


    t_lAmount = double.Parse(Session["Amount"].ToString());
    t_strRefNum = Request["RefNum"].ToString();
    t_strResNum = Request["ResNum"].ToString();


    //if (Request["RefNum"] != null)
    // Response.Write("***Request RefNum " + Request["RefNum"]);
    //Response.Write("<br></br>");
    //if (Request["ResNum"] != null)
    // Response.Write(" ***Request ResNum " + Request["ResNum"]);
    //Response.Write("<br></br>");
    //if (Request["State"] != null)
    // Response.Write(" ***Request State " + Request["State"]);
    //Response.Write("<br></br>");
    //Response.Write("***HttpContext.Current.Request.Par ams[RefNum]:"+ HttpContext.Current.Request.Params["RefNum"]);
    //Response.Write("<br></br>");
    //Response.Write("***HttpContext.Current.Request.Par ams[ResNum]:"+ HttpContext.Current.Request.Params["ResNum"]);
    //Response.Write("<br></br>");
    //Response.Write("***HttpContext.Current.Request.Par ams[State]:"+ HttpContext.Current.Request.Params["State"]);
    if (t_strRefNum != null)
    {
    if (Request["State"] != "OK")
    {
    ///p15-16
    ///
    ErrorTable1516();
    }
    else
    {
    dt_refnum = maincls.dtMain("SELECT ReservationNumber, RefrenceNumber FROM dbo.Customers where RefrenceNumber='" + t_strRefNum + "' ");
    //در صورت تکراری نبودن ویا عدم و جود در دیتا بیس ما
    if (dt_refnum.Rows.Count == 0)
    {//69600000000;//
    TA = PaymentWebService.verifyTransaction(t_strRefNum, MID);
    if (TA > 0)
    {
    if (TA == t_lAmount)
    {
    //////رفرنس نامبری را که بانک به ماداده ایت را در جدول مربوطه ذخیره می کنیم
    updateTableCustomer(t_strResNum, t_strRefNum, "N", 0);
    //////در اینجا پرداخت پول موفقیت آمیز بوده است
    }//if
    else
    {

    عکس های ضمیمه عکس های ضمیمه

  28. #28
    من متاسفانه نتونستم تمامی پست ها رو بخونم.

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

    اگر هم نیست جای تاسف داره!!! :|

  29. #29
    نقل قول نوشته شده توسط sweb مشاهده تاپیک
    من متاسفانه نتونستم تمامی پست ها رو بخونم.

    خواستم بپرسم برای زبان PHP نیز API خاصی در نظر گرفته شده یا خیر اگه هست یه لینک بهم معرفی کنین.
    در سیستم پرداخت سامان از پروتکل HTTP و تکنولوژی وب سرویس (مبتنی بر SOAP) استفاده شده.بنابراین در هر محیط برنامه نویسی که از این دو پشتیبانی شود امکان کار وجود دارد. در حال حاضر asp.net, J2EE, Delphi, PHP, ASP , PERL و ... این امکان را دارند. فایل مثال برای کار با وب سرویس سامان در PHP ضمیمه شده است.

    من تو سایت خود بانک سامان چیزی پیدا نکردم.

    اگر هم نیست جای تاسف داره!!! :|
    اگر پیدا می کردید جای تعجب داشت، چون برای رعایت مسائل امنیتی این اطلاعات فقط در اختیار کسانی قرار داده می شود که با بانک قرارداد دارند.
    فایل های ضمیمه فایل های ضمیمه

  30. #30
    سلام
    من php کار هستم.
    اما برای کار با سامان مشکل دارم .
    در پارسیان متغیرها به طور واضح مشخص شده و توابع هم معرفی شده اند اما در سامان هیچ توضیحی پیدا نکردم

  31. #31
    سلام به آقایون خواهش میکنم به من کد اتصال به سامان و پارسیان رو مخبت کنید بدید. بدجوری لازم دارم

  32. #32
    دردود
    یه آدم خیر پیدا میشه کمک کنه
    من که دیگه عقلم به جایی قد نمیده
    ممنون از همگی

  33. #33

    نقل قول: پرداخت الکترونیکی (شتاب)

    ممنون میشم اگه طریقه ساخت web reference بگید.

  34. #34

    نقل قول: پرداخت الکترونیکی (شتاب)

    نقل قول نوشته شده توسط robatik مشاهده تاپیک
    ممنون میشم اگه طریقه ساخت web reference بگید.


    In Solution Explorer, right-click the name of the project to add the Web service to and then click Add Web Reference.

    The Add Web Reference dialog box is displayed.


    In the URL box, enter the URL of the Web service to use. If you do not know the URL, use the links in the browse pane to locate the Web service you want.

  35. #35

    نقل قول: پرداخت الکترونیکی (شتاب)

    من مشکل دارم با پرداخت پارسیان این خطا رو بهم می ده کسی می دونه چیه ؟

    The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

  36. #36
    دوستان، آیا پس از یک پرداخت موفقیت آمیز در بانک سامان، وجه بلافاصله به حساب اصلی واریز میشود یا تاخیر خواهد داشت؟ در قسمت مدیریت پذیرنده، وضعیت تراکنشها "خرید" هست اما وجهی هنوز به حساب اصلی واریز نشده.

  37. #37

    نقل قول: پرداخت الکترونیکی (شتاب)

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

  38. #38

    نقل قول: پرداخت الکترونیکی (شتاب)

    من هم عین خطای s.mohammadi دارم کسی هست کمکم کنه این پشتیبانب افتزاح ملت هم که جواب نمی دهند تازه طلبکار آدم هم می شوند خواهش می کنم مرا راهنمایی کنید.

  39. #39
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    70

    نقل قول: پرداخت الکترونیکی (شتاب)

    نقل قول نوشته شده توسط ParsaGostar مشاهده تاپیک
    شما پس از بستن قرارداد بانک سامان یک MerchantID در اخیار شما میزاره .

    برای ارسال کاربر برای خرید اول باید پارامترها را به صورت post به آدرس https://acquirer.sb24.com/CardServices/controller ارسال کنید .

    مثال :

    <form action="https://acquirer.sb24.com/CardServices/controller" method="post">


    <input name="Amount" type="hidden" value="100" /> مبلغ به ریال

    <input name="ResNum" type="hidden" value="30" /> شماره سفارش که شما باید ارسال کنید

    <input name="MID" type="hidden" value="111111-11111" /> آی دی که سامان داده

    <input name="RedirectURL" type="hidden" value="http://site.com/callback.aspx" /> آدرس برگشتی پس از خرید





    <input name="Button1" type="submit" value="button" />



    </form>



    در صفحه Callback هم از کد زیر استفاده کنید :



    Dim RefNum As String = HttpContext.Current.Request.Params("RefNum")
    Dim ResNum As String = HttpContext.Current.Request.Params("ResNum")
    Dim State As String = HttpContext.Current.Request.Params("State")

    If Not (RefNum Is Nothing) Then

    ' saman code


    If State = "OK" Then

    If RefNum = "" Then

    lbl.Text = "گویا خرید شما توسط بانک تایید شده است اما رسید دیجیتالی شما تایید نگشت"

    Else


    Dim PaymentWebService As New SamanWebService.ReferencePayment
    Dim Result As Double = PaymentWebService.verifyTransaction(RefNum, "1111-11111")


    If Result > 0 Then





    G.PayPaidSaman(ResNum, RefNum)



    lbl.Text = "خرید با موفقیت انجام شد"




    Else

    lbl.Text = "مشکلی در تایید خرید شما وجود دارد . کد خطا : " & Result


    End If



    End If


    Else

    lbl.Text = "متاسفانه بانک خرید شما را تایید نکرده است : " + State
    End If




    اگر مشکلی بود هستم در خدمتتون

    منظور از G در دستور

    G.PayPaidSaman(ResNum, RefNum)

    چی هست؟

  40. #40

    نقل قول: پرداخت الکترونیکی (شتاب)

    منظور از G در دستور

    G.PayPaidSaman(ResNum, RefNum)

    چی هست؟

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

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