استفاده از درگاه بانک ملت در اندروید
سلام من توی یه شرکت کار می کنم و یه برنامه اندروید نوشتم که نیاز داره به درگاه بانک ملت وصل بشه من اسناد و نمونه کد های جاوا و php را گرفتم از پشتیبانی به پرداخت اما نتونستم توی اندروید ازش استفاده کنم خیلی مهم و فوریه برام
ممنون میشم کمکم کنین
وقتی کاربر وارد اپ میشه و بعد از انتخاب محصول و ... روی دکمه خرید میزنه فرآیندی به شکل زیر باید رخ بده:
البته این یک نگاه کلی به روند انجام پرداخت هست و جزئیاتی هم داره که در پیاده سازی باید توجه داشته باشید
این فرآیند تنها از طریق فراخوانی وبسرویس هایی که برای اندروید در سمت سرور نوشتید اتفاق میفته و پاسخ سرور هم یک json ساده و معمولی هست که هر بار اپلیکیشن پاسخ سرور رو فقط میبینه و عملیات متناسب رو انجام میده ، عملیاتی نظیر نمایش یک پیغام که مثلا سرور الان بررسی کرده و میگه مبلغ نباید کمتر از 100 تومان باشه و یا سرور همه چی رو تایید کرده خب حالا با یک intent کاربر رو به یک آدرس مثلا mystie.ir/payment/pay ارسال میکنی و پرداخت رو انجام میدی .
تنها کاری که اپ میکنه همینه و نقش دیگه در پرداخت نداره اصل کار سمت سرور هست.
مثال:
مرحله1: ارسال مبلغ 1000 تومان به سرور
مرحله2: بررسی مبلغ و سایر اطلاعات توسط سرور و ارسال پاسخ به کلاینت مثلا در اینجا پاسخ کلاینت رو به صورت json دادیم:
{"status" : "success" } or {"status" : "fail" }
مرحله3: در صورت "success" بودن پاسخ سرور ، آدرس صفحه پرداخت رو توسط یک intent باز میکنیم مثلا :
Intent paymentPage = new Intent(Intent.ACTION_VIEW); paymentPage.setData(Uri.parse("http://mySite.ir/payment/pay"); startActivity(paymentPage);
مرحله4: نمایش درگاه پرداخت در مرورگر کاربر و انجام فرآیند پرداخت. بعد از طی مراحل پرداخت یک صفحه مثلا به این آدرس http://mysite.ir/payment/paymentStatus نتیجه پرداخت رو به کاربر نشون میده .حال در این صفحه میتونید یک لینک به این صورت بگذارید:
<a href="myApp://buy/success"> با موفقیت انجام شد </a>
<a href="myApp://buy/fail"> ناموفق بود </a>
که وقتی کاربر روش کلیک کنه اپ باز میشه و کاربر به اپ برمیگرده برای اینکه این لینک به درستی کار کنه لازمه سمت اندروید هم یه تغییراتی بدید
در سمت اندروید در manifest.xml این کدها رو قرار بدید:
<activity android:name=".ActivityMain" android:allowTaskReparenting="true" android:label="@string/title_activity_activity_main" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:host="buy" android:pathPattern=".*" android:scheme="myApp" /> </intent-filter> </activity>
آدرس هایی که در لینکهای سمت سرور قرار دادیم وقتی توسط کاربر کلیک بشه باعث باز شدن اپ ما و اکتیویتی ای که کدهای بالا رو براش قرار دادیم میشه:
در کد بالا با تغییر مقادیر data شما میتونید آدرس مد نظرتون رو ایجاد کنید
ساختار یک آدرس بدین شکل هست:
http://google.com/
schema://host/pathPattern
که ما گفتیم schema مون myApp هست یعنی لینک هایی که در مرور با این schema شروع بشن میتونن توسط اپ ما باز بشن
ادرس هاست هم که گذاشتیم buy این آدرس نیاز نیست حتما آدرس دامنه سرورتون باشه میتونه هرمقدار دلخواهی باشه فقط باید سمت اپ و سرور یکسان باشن و مقدار pathPattern هم که * گذاشتیم یعنی هرچیزی که بعدش بیاد مهم نیست.
اگر همه چیز رو که گفتم به درستی انجام داده باشید کاربر بعد خرید و کلیک روی لینک به اکتیویتی مربوطه هدایت میشه که ما در اینجا گفتیم activityMain رو باز کن.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .