نوشته شده توسط
hharddy
مستندات خود نکست پی و مطالعه کنید
معمولا برای اینجور درگاه ها شما اول باید یک ریکوئست به سایت درگاه ارسال کنید همراه با اطلاعاتی و در جواب به شما کد تراکنش میدن سپس کاربر و از طریق مرورگر گوشی به آدرس موردنظر منتقل میکنید و بعد از پرداخت به صفحه call back ایی که خودتون تعیین کردید برمیگردید و با رفتن به اون صفحه از طریق deep link میتونید کاربر و به اپلیکیشن برگردونید.
ممنونم ..
این مسیر رو رفتم حالا میخوام اون مرورگر گوشی که مثلا اگه مرورگر رو بست و پرداخت نکرد و اینکه پرداخت کرد و موفقعیت آمیز بود رو به اپلیکیشن اطلاع بده ...
هرچی تلاش میکنم خطا میده
@Override
public void onRestart() {
super.onRestart();
Toast.makeText(this, "onRestart", Toast.LENGTH_SHORT).show();
Uri uri = getIntent().getData();
Toast.makeText(this, " path=="+uri.getPath() , Toast.LENGTH_SHORT).show();
}
و اینم manifest
<activity android:name=".CompetitionsActivity" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="vosoli.ir"/>
<data android:scheme="https" android:host="nextpay.org"/>
</intent-filter>
</activity>
و خطا ش اینه
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.m.myapplication, PID: 4974
java.lang.RuntimeException: Unable to resume activity {com.example.m.myapplication/com.example.m.myapplication.CompetitionsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getPath()' on a null object reference
at android.app.ActivityThread.performResumeActivity(A ctivityThread.java:2951)
at android.app.ActivityThread.handleResumeActivity(Ac tivityThread.java:2982)
at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1322)
at android.os.Handler.dispatchMessage(Handler.java:10 2)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.jav a:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:694)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getPath()' on a null object reference
at com.example.m.myapplication.CompetitionsActivity.o nRestart(CompetitionsActivity.java:468)
at android.app.Instrumentation.callActivityOnRestart( Instrumentation.java:1230)
at android.app.Activity.performRestart(Activity.java: 6000)
at android.app.Activity.performResume(Activity.java:6 011)
at android.app.ActivityThread.performResumeActivity(A ctivityThread.java:2940)
at android.app.ActivityThread.handleResumeActivity(Ac tivityThread.java:2982)
at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1322)
at android.os.Handler.dispatchMessage(Handler.java:10 2)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.jav a:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:694)