GithubHelp home page GithubHelp logo

razorpay-android-sample-app's Introduction

Banner

Razorpay's Sample Android App

This repository demonstrates how to integrate Razorpay's Android SDK.
The apk built with code from this repository is published here

The documentation to our Android SDK is available here

Features

razorpay.com/mobile

Releases | Integration

Releases are available at https://mvnrepository.com/artifact/com.razorpay/checkout.

tl;dr

  • Add this line to your app's build.gradle inside the dependencies section:

    implementation('com.razorpay:checkout:1.6.20')
    
  • To hand over control to Razorpay's SDK for collecting payment, refer to PaymentActivity.java

  • For the permissions required, refer AndroidManifest.xml

  • For proguard rules when you are releasing the app, refer proguard-project.txt

Kotlin Support

Razorpay's SDKs are now compatible with Kotlin support as well. Find the code for this at https://github.com/razorpay/razorpay-android-sample-app/app/src/main/java/kotlin/PaymentActivity.kt

Support

Razorpay is a tech company. All our engineers handle support too. You can write to us at razorpay.com/support and expect a response from the devs responsible for the Android SDK.

License

MIT Licensed. LICENSE file added to repo.

razorpay-android-sample-app's People

Contributors

abhinavarora95 avatar dependabot-preview[bot] avatar hariramsvnit avatar mayur-wadpalliwar avatar mb-14 avatar nautiyalsachin avatar philsonjohnphilip avatar shashankmehta avatar steelrooter avatar sumedht avatar swati31196 avatar thotakartheek004 avatar vivekshindhe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

razorpay-android-sample-app's Issues

razorpay checkoutActivity crash on Oreo

we are facing crash issue on Oreo devices suddenly with the below error.

05-31 08:15:18.577 18958-18958/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.smileyserve, PID: 18958
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.razorpay.RzpAssist.onProgressChanged(int)' on a null object reference
at com.razorpay.CheckoutActivity$10.onProgressChanged(:246)
at com.android.webview.chromium.Ap.onProgressChanged(WebViewContentsClientAdapter.java:45)
at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:79)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6637)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

please suggest the solution. we are using gradle dependency com.razorpay:checkout:1.3.4

Unable to start activity ComponentInfo{com.example.rozarpay/com.razorpay.CheckoutActivity}: java.lang.StringIndexOutOfBoundsException

FATAL EXCEPTION: main
Process: com.example.rozarpay, PID: 18776
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rozarpay/com.razorpay.CheckoutActivity}: java.lang.StringIndexOutOfBoundsException: length=3; index=8
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Caused by: java.lang.StringIndexOutOfBoundsException: length=3; index=8
at java.lang.String.substring(String.java:1971)
at com.razorpay.E$j$.Q$2$(:30204)
at com.razorpay.CheckoutActivity.onCreate(:28048)
at android.app.Activity.performCreate(Activity.java:7372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302) 
at android.app.ActivityThread.-wrap12(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891) 
at android.os.Handler.dispatchMessage(Handler.java:108) 
at android.os.Looper.loop(Looper.java:166) 
at android.app.ActivityThread.main(ActivityThread.java:7425) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921) 

No error message when internet is not connected

Problem: We've encountered a blank white screen when there are internet connectivity issues after selecting a payment method. It would be better if we could show an error message (highlighting connectivity issues) in some way.

Steps to reproduce

  1. Select a payment mechanism (good internet connectivity)
    Selecting payment method
  2. Disconnect internet and click on pay
    "Blank screen

Where to provide the merchant details??

I just downloaded this into one of my sample android apps, installed to an emulator and ran.
It went smoothly and Rs.1 deducted from the account details provided. Later Razorpay has started a refund process as well.
I hadn't provided merchant details anywhere.
Where to provide the merchant details like key, secret etc...?

Amount must be integer error:

Hi,

I am trying to integrate your latest sdk from the downloads page:

I am facing 2 issues:

  1. The amount does not appear correctly:
    • I need to multiply by 100 to get a proper denomination
  2. No matter what value I enter,I always get Amount should be an integer

Success/Failure not receiving

I have implemented payment on Fragment, it opens up to get all the details but Success and Failure toast comes like mentioned below respectively

Error: onPaymentSuccess probably not implemented
Error: onPaymentError probably not implemented

Do I have to implement in Activity only?

Library not completely install

  1. compile project(name: "razorpay-android-3.4.0", ext: 'aar')
  • Required keys [path] are missing from map {name=razorpay-android-3.4.0, ext=aar}.

Memory leak in CheckoutActivity

According to android studio, com.razorpay.CheckoutActivity has a memory leak or leaks. You code has been obfuscated. So, I can't find where memory leak has happened.

Can you please look into this? Let me know if you require more information.

Thanks,
Umang Kothari

Unable to start activity ComponentInfo{com.rnei.scraptapb2b/com.razorpay.CheckoutActivity}

Have followed the same example as the sample app and i am getting this error

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rnei.scraptapb2b/com.razorpay.CheckoutActivity}: java.lang.ArrayIndexOutOfBoundsException: length=39; index=39
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=39; index=39
at com.razorpay.K$$z$.$$d()
at com.razorpay.K$$z$.$$a()
at com.razorpay.K$$z$.(:67)
at com.razorpay.K$$z$.R$$r_()
at com.razorpay.D$X.G__G_(:174)
at com.razorpay.l_$w$.G__G_(:351)
at com.razorpay.CheckoutActivity.onCreate(:69)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6119) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Receiver not registered exception.

Caused by java.lang.IllegalArgumentException: Receiver not registered:        com.razorpay.SmsAgent$if@42818048
       at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:667)
       at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1582)
       at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:489)
       at com.razorpay.SmsAgent.ˎ(SourceFile:82)
       at com.razorpay.OTPElf.paymentFlowEnd(SourceFile:272)
       at com.razorpay.CheckoutActivity.onDestroy(SourceFile:182)
       at android.app.Activity.performDestroy(Activity.java:5420)
       at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1140)
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3551)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3582)
       at android.app.ActivityThread.access$1400(ActivityThread.java:139)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5086)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
       at dalvik.system.NativeStart.main(NativeStart.java)

Got this on a live app.

Paytm Wallet Click

Paytm wallet button click is not working after creating Release build in android. Please solve the this problem , we have getting to much business loss .

Activity code listener ambiguity

Can you please mention in the PaymentActivity that the activity must be the listener as well in order for the checkout flow to work. It's not very obvious.

checkout form close call

I have a use case for a kiosk app where if someone abandons the payment after opening checkout form, i have to close the form and exit the payment after an interval.Closing the form manually by clicking the 'x' on the form provides call back to payment error where an error view can be set.

In case of using a countdown timer, if i change the view after timer finishes, the checkout form still lurks on the top. the only way is to destroy the activity but in that case, the soft keyboard is left open which i have to handle separately. Also if i provide method as upi into checkout form, the text box doesn't get focus automatically and keyboard doesn't open.

Can i know what can be done here?

Next button in email field

After entering correct phone number and email, when I click on next button in key board, either key board should hide, or keyboard button should be "OK". Its annoying to press back button and clicking on payment option.
device-2017-02-10-113201 edited

success Url

how to store payment success and failure details in my server

Compatibility problems

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

I get the error like this :
Process 'command '/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

If these are set then the application does not even compile.
Using Android Studio 3.1.2
I tried this on the sample app as well as my existing app.
We need to integrate razor pay with our app but unfortunately the above issue is restricting me.

Support for maven/jcenter repository

Currently there is no way to include the repository without copying the jar into the project source.

Can u upload the artifact to maven/jcenter, so that we don't need to include it manually in the project (+ our source repo will not be polluted)

Currently, to avoid including the file in the source control

  1. I am installing the artifact into the local maven repository using shell
mvn install:install-file -Dfile=razorpay-android-0.11.1.jar -DgroupId=com.razorpay -DartifactId=android -Dversion=0.11.1 -Dpackaging=jar
  1. Referencing the artifact from the gradle by adding
repositories {
    mavenLocal() // <- will point to local maven repository
    jcenter()
}
  1. Referencing the dependency in app.gradle
dependencies {
    // A lot more dependencies
    compile 'com.razorpay:android:0.11.1'
}

If you fix this issue, everyone can just point to jcenter and be done with instead of hacks

Segment Class with ASCII character's causes proguard error

Razorpay v1.0.2 and also tested on v1.2.0 causes the error with Segment Class having ASCII character in class name while applying proguard.

Android gradle version: 2.3.0
Android Studio: 2.3

I am having this error:
Error:org.gradle.api.UncheckedIOException: java.io.IOException: Failed to read zip file 'app/build/intermediates/transforms/proguard/release/jars/3/1f/main.jar'.

Caused by: java.io.IOException: Failed to read stored entry 'com/razorpay/Segment$ۥ.class'.
at com.android.apkzlib.zip.CentralDirectory.readEntry(CentralDirectory.java:367)
at com.android.apkzlib.zip.CentralDirectory.makeFromData(CentralDirectory.java:225)
... 36 more

`order_id` creating issue

When order_id is used in JSONObject of options, Razorpay SDK is throwing an error and moves into onPaymentError method

private fun startPayment(orderId: Long, paymentGateway: PaymentGateway) {
val checkout = Checkout()
checkout.setImage(R.drawable.lifcare_logo)
checkout.setFullScreenDisable(true)
try {
val options = JSONObject()
options.put("name", "Name")
options.put("description", "Description")
options.put("currency", "INR")
options.put("amount", paymentGateway.amount.times(100))
options.put("order_id", paymentGateway.refTransactionId)

        val prefill = JSONObject()
        prefill.put("email", "emailID")
        prefill.put("contact", "9999999999")
        prefill.put("method", "card")

        options.put("prefill", prefill)
        options.put("theme", JSONObject("{color: '#7cb342'}"))
        checkout.open(this, options)
    } catch (e: Exception) {
        Timber.e(e, "Cannot pay right now!!")
    }
}

Problem installing the SDK on Android Studio 3.1.3

Can't install checkout SDK by adding
implementation('com.razorpay:checkout:1.4.9') or
compile('com.razorpay:checkout:1.4.9') to build.gradle

Fails with Process 'command 'C:\Program Files\Java\jdk1.8.0_181\bin\java.exe'' finished with non-zero exit value 1

app details

compileSdkVersion 27
buildToolsVersion '27.0.3'
supportLibraryVersion = '27.1.1'
Gradle Version 4.4
Android Plugin Version 3.1.3

disable fields when prefilled

Hi Team,

I would like to know if there is a way to disable the email and phone number fields when pre filled in checkout in android.

version : com.razorpay:checkout:1.4.9

Get transaction details

How to pass transaction id and get Transaction details like - Mode of Payment, Transaction ID etc.

API key is invalid

i have gone through merchant panel and copy security api key and pasted it into manifest file then why I am getting this error, which is correct api key

changing to prefix phone number after failure payment.

Hi,
When the user edits the prefix phone number and come backs after failure payment,
The phone number is coming back to prefix phone number only.
My tester is killing me to fix it :)
Prefix phone number is 96525xxxxx, He edited that to 94910xxxxx.
phone number 1

After he failed the payment,
phone number 2

While selecting the payment bank
phone number 3

Crash in Android Oreo

When Running the app in Android Oreo the app crashes with the following stack trace

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ft.gt.assistant/com.razorpay.CheckoutActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                                       at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                       at android.os.Looper.loop(Looper.java:164)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                                    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
                                                                       at com.razorpay.B_$q$.d__1_(:14114)
                                                                       at com.razorpay.CheckoutActivity.onCreate(:23479)
                                                                       at android.app.Activity.performCreate(Activity.java:6975)
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                                       at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                                       at android.os.Looper.loop(Looper.java:164) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

When running on a Nougat Device or emulator, there is no crash, however when running in an Android Oreo Emulator, the issue can be seen

I am using 1.4.0 Version of the library

NullPointerException in Checkout screen

I opened Activity which contains Checkout.preload(getApplicationContext()); and closed it immediately. Then app got crashed and found following exception from Crashlytics. Can you please look into this issue?

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setTag(java.lang.Object)' on a null object reference at com.razorpay.Checkout$5.onPageStarted(Unknown Source:149) at com.android.webview.chromium.WebViewContentsClientAdapter.onPageStarted(WebViewContentsClientAdapter.java:532) at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:157) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5343) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

Couldn't find outer class com/razorpay/Y_$B$ of com/razorpay/Y_$B$$5

Exception in thread "main" java.lang.NullPointerException: Couldn't find outer class com/razorpay/Y_$B$ of com/razorpay/Y_$B$$5
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:1079)
at com.google.devtools.build.android.desugar.ClassVsInterface.isOuterInterface(ClassVsInterface.java:56)
at com.google.devtools.build.android.desugar.InterfaceDesugaring.visitOuterClass(InterfaceDesugaring.java:246)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:638)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)

How to Close RazorPayActivity in Android

I am opening the RazorPay Payment Screen using the below code.
final Checkout co = new Checkout();
co.open(activity, options);

There is no option for me to Close the Payment Screen dynamically in Android, that option is provided in ios using the .close() method.

App crashes when attempting to open Checkout page !

The error is :

java.lang.IllegalAccessError: Illegal class access: 'com.razorpay.Q$$U_' attempting to access 'com.razorpay.Q$$U_$5' (declaration of 'com.razorpay.Q$$U_' appears in /data/data/com.protomake/cache/.    )
at com.razorpay.Q$$U_.Q_$2$(:8085)
at com.razorpay.Q$$U_.d__1_(:341)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.razorpay.E$6$.G__G(:33048)
at com.razorpay.CheckoutActivity.onCreate(:30038)
at android.app.Activity.performCreate(Activity.java:6005)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2446)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2555)
at android.app.ActivityThread.access$800(ActivityThread.java:176)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5576)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)

I couldn't find any solution what was the issue here ?

Activity not found com.razorpay.CheckoutActivity, declared in manifest?

When I tried to use the manifest demo,
I got to following error.

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{myapp.myapp/myapp.myapp.activities.RazorPayActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {myapp.myapp/com.razorpay.CheckoutActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3163)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273)
at android.app.ActivityThread.access$1000(ActivityThread.java:219)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6959)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by android.content.ActivityNotFoundException: Unable to find explicit activity class {myapp.myapp/com.razorpay.CheckoutActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1837)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1661)
at android.app.Activity.startActivityFromFragment(Activity.java:4729)
at android.app.Fragment.startActivityForResult(Fragment.java:1114)
at android.app.Fragment.startActivityForResult(Fragment.java:1098)
at com.razorpay.Checkout.onCreate(Unknown Source:143)
at android.app.Fragment.performCreate(Fragment.java:2075)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:869)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
at android.app.BackStackRecord.run(BackStackRecord.java:834)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1470)
at android.app.Activity.performStart(Activity.java:6646)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273)
at android.app.ActivityThread.access$1000(ActivityThread.java:219)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6959)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Log2.txt

Device I used for testing is Samsung J Max tab.
OS: 5.1.1

Refund

I have Booked My tickets on IRCTC application through Razorpay Option. According to IRCTC they have transfered amount on 1st of sept. but it is not being credited to my account yet.
kindly look after it.
Transaction ID - 100001420499247
Ticket ID - 1480968
Refund reference no. - rfnd_AsYNiQc3KFtQ5L

Razorpay error case not working

How to handle error case in razorpay-android-sample-app?
I checked this code success case is working and also show the toast.
But in error case is not showing the toast. Please clarify my doubt.

Razor pay test key: rzp_test_X41hYj0GeeILH9

onPaymentSuccess and onPaymentFailure callbacks in fragments?

my current implmentation in fragment is:-

` private void startRazorPayPayment(PassportCardsBean passportCardsBean) {
final String public_key = "sdfsdfsdfsdf";
final String PAYMENTLOGOURL = String.valueOf(getResources().getDrawable(R.drawable.footlogo));
final Checkout co = new Checkout();
co.setPublicKey(public_key);

    try{

        JSONObject options = new JSONObject("{" +
                "description:" + "'"+passportCardsBean.getAppDesc()+"\',"+
                "image:"+"'"+PAYMENTLOGOURL+"\'," +
                "currency: 'INR'}"
        );

        options.put("amount", passportCardsBean.getPrice() * 100);
        options.put("name",  passportCardsBean.getAppTitle());
        options.put("prefill", new JSONObject("{email:" + "'"+Utils.getUserEmail(activity)+"\'," +
                " contact:" + "'"+Utils.getUserContact(activity)+"\'}"));

        co.open(activity, options);

    } catch(Exception e){
        Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
}

/**
 * The name of the function has to be
 *   onPaymentSuccess
 * Wrap your code in try catch, as shown, to ensure that this method runs correctly
 */
public void onPaymentSuccess(String razorpayPaymentID){
    try {
        Toast.makeText(activity, "Payment Successful: " + razorpayPaymentID, Toast.LENGTH_SHORT).show();
    }
    catch (Exception e){
        Log.e("com.merchant", e.getMessage(), e);
    }
}

/**
 * The name of the function has to be
 *   onPaymentError
 * Wrap your code in try catch, as shown, to ensure that this method runs correctly
 */
public void onPaymentError(int code, String response){
    try {
        Toast.makeText(activity, "Payment failed: " + Integer.toString(code) + " " + response, Toast.LENGTH_SHORT).show();
    }
    catch (Exception e){
        Log.e("com.merchant", e.getMessage(), e);
    }
}`

on Back press from webView Client i get a toast message showing onPaymentError is not impleneted!

Should i use this in activity instead of an fragment?? Help

Annoying Update toast

I am currently using 1.4.7 and when my minSdkVersion is 16, when I tried to update it to 1.4.8, there was an error in gradle sync. It was saying minSdkVersion for razorpay is 19 which I can't change. So I revert back to 1.4.7, now whenever I am making a payment it asks me to update sdk(which I doubt will come in live apk, it may be coming in debug version only). So according to you what should I do to stop that toast? minSdkVersion I cant change, maybe you can lower your support SDK.

Error On Checkout.preload(getApplicationContext()). Shows blank chrome tab ( white screen )

Checkout Gradle Version : compile 'com.razorpay:checkout:1.4.4'

On Activity start I have called Checkout.preload(getApplicationContext()). It throws following error :

chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot create property 'title' on string 'data:image/png;base64,R0lGODlhKAAoAMQQAOvJ1vry9bM1Z7hDcfXk68JehtaTrvDX4eGuwsdrkNKGpMx5mr1Qe+a8zNuhuK4oXf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAoACgAAAXdICSOZGmeaKqubIsGgSunyjLf5PE8B44Xu4Jv1tjtEMNWYGB8DGJJlaG5M0RTBAF1R7ieEttdwlsChI0A8ohx3g3UEEfb2PMGtPMxWTHnknV9VmRAcwJQVwh9D0h2THNvZFN9aV4EikJkYH1dXmZ9CmqObQJ4bZArknMOqW0OK3d9kKJnhioLipRFnymeeSSEc3UmwG2cIpZ9mCWJgSZ8fYwjsI+H0qVnTySsZ9HLioIQyHPKJ2yFnMRnwie9bWO6czYrt5OzYbUrWX0MAP3+//3WqTgAsCAlOAivhAAAOw=='", source: https://checkout.razorpay.com/v1/checkout-frame.js (1)
chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'r' of undefined", source: https://checkout.razorpay.com/v1/checkout-frame.js (1)

And after that when I try to start the payment

public void startPayment(@NonNull JSONObject options) {
        /**
         * You need to pass current activity in order to let Razorpay create CheckoutActivity
         */
        final Activity activity = this;
        JSONObject jsonObject = new JSONObject();

        final Checkout co = new Checkout();
        try {
            jsonObject.put("currency", "INR");
            jsonObject.put("amount", "100");
            jsonObject.put("order_id", options.getString("id"));
            jsonObject.put("name", "Some Title");
            jsonObject.put("description", "Accept Payment");

            JSONObject preFill = new JSONObject();
            if (currentUser.getCountryCode() != null && currentUser.getMobileNumber() != null) {
                preFill.put("contact", currentUser.getCountryCode() + currentUser.getMobileNumber());
            }

            if (currentUser.getEmailAddress() != null) {
                preFill.put("email", currentUser.getEmailAddress());
            }

            jsonObject.put("prefill", preFill);

            co.open(activity, jsonObject);
        } catch (Exception e) {
            Toast.makeText(activity, "Error in payment: " + e.getMessage(), Toast.LENGTH_SHORT)
                    .show();
            e.printStackTrace();
        }
    }

This shows a blank chromium tab (white screen).

Any solution ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.