PDA

View Full Version : کد ussd



hosseinaryai
جمعه 27 شهریور 1394, 18:40 عصر
با خدمت دوستان
سوالم در مورد کد های ussd هست ..
خب من تونستم با کد زیر ، USSD رو فراخوانی کنم .. پرداخت انجام بدم .. همه چیز هم به خوبی انجام شد و آخرش هم کد پیگیری و باقی مسائل رو بهم نشون داد ..


startActivityForResult(new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + "*720*36111*893757" + "%23")),1);

اما مشکلم اینجاست که چطور می تونم اطلاعات بازگشت از کد USSD رو توی برنامه فراخوانی کنم .. یعنی ببینم نتیجه ی فعالیتش چی بوده ؟ مثلن اگه پرداخت انجام شده شماره پیگیری رو توی برنامه به کاربر نشون بدم ..
می دونم توی متد onActivityResult باید مقادیر بازگشتی رو دریافت کنم ، اما مشکل اینجاست که اطلاعات رو باید با یه کلمه ی کلیدی دریافت کرد از Bundle ..
کسی می تونه کمکم کنه ؟

Nevercom
یک شنبه 29 شهریور 1394, 11:27 صبح
کد USSD رو که اجرا می کنید، نتیجه ای بهتون بر نمیگردونه.

تنها راهی که وجود داره، اون هم برای نسخه های خاصی از اندروید، این هست که مجوز کنترل دایالوگ ها رو از کاربر بگیرید، در این حالت میتونید به متن های دیالوگ های USSD دسترسی داشته باشید.
البته توصیه می کنم این کار رو نکنید، چون در این حالت و با این مجوز همه ی متن ها، اعم از متنی که کاربر وارد می کنه در اختیار شما هست، یعنی بصورت بالقوه شما به شماره کارت و رمز دوم کارت های بانکی دسترسی پیدا خواهید کرد.
این یک مسئولیت بزرگ برای شما و یک ریسک امنیتی برای کاربران هست. هیچوقت سمتش نرید !!!!

درگاه های USSD معمولاً اطلاعات رو برای سرور شما ارسال می کنن و یا حتی ممکنه متدهایی برای پیگیری تراکنش داشته باشن، شما میتونید پس از شروع خرید با فاصله ی زمانی چند ثانیه از سرور درخواست کنید تا نتیجه رو بهتون بده و وقتی تراکنش انجام شد، سرور شما داده ای خواهد داشت و میتونه پاسخ رو ارسال کنه.