Giter VIP home page Giter VIP logo

documentations's Introduction

#SDK and Custom Browser Integration Document WIKI

documentations's People

Contributors

guruchetansingh avatar pointiitm avatar shoaibkhan06 avatar umangarya336 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

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

documentations's Issues

Return Urls

Can i use a single url(Web service post type) for both success & failure case.

if yes kindly let me know the response model what i'll get from PayU

Links for reference android/ios surl and furl are dead.

The reference links given on the page https://github.com/payu-intrepos/Documentations/wiki/4.-Server-Side#return-url---surl--furl are dead.

android surl and furl
https://payu.herokuapp.com/success
https://payu.herokuapp.com/failure

iOS surl and furl
https://payu.herokuapp.com/ios_success
https://payu.herokuapp.com/ios_failure

The sample code is not helping much. The client side implementation asks for 2 urls
mPaymentParams.setSurl(“https://payu.herokuapp.com/success”); mPaymentParams.setFurl(“https://payu.herokuapp.com/failure");

refe : https://github.com/payu-intrepos/Documentations/wiki/6.-Android-SDK-Integration#21-non-seamless-using-sdks-inbuilt-ui

Whereas the sample code given on link https://github.com/payu-intrepos/Documentations/wiki/4.-Server-Side#return-url---surl--furl
shows only one page with both PayU.onSuccess(input); and PayU.onFailure(input); calls.

The links for reference was our hope to solve this but they too are dead links.

Crash in iOS cutom Browser

2015-12-16 13:27:24.035 SampleAppUsingWebView[3469:68521] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFData gunzippedData]: unrecognized selector sent to instance 0x7fd0025d7e80'

CB Integration issue IOS

(instancetype)initWithPostParam:(NSString*)postParam
url:(NSURL*)url
merchantKey:(NSString*)key
error:(NSError**)error;

What should be the values of postParam and url in the above Method.

Generate Hash Key Issue

For Production Environment, getting issue in generate hash key. How could we solve this issue?

PhonePeIntent SDK Dex Builder Error

AGPBI: {"kind":"error","text":"Class content provided for type descriptor a.a.b.a.e.A actually defines class a.a.b.a.e.a","sources":[{}],"tool":"D8"}
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
at org.gradle.workers.internal.DefaultWorkerExecutor.workerExecutionException(DefaultWorkerExecutor.java:158)
at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:152)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:424)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform$DexConversionWorkAction
at org.gradle.workers.internal.DefaultWorkerExecutor$WorkerExecution.waitForCompletion(DefaultWorkerExecutor.java:285)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:115)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:87)
at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:150)
... 100 more
Caused by: org.gradle.tooling.BuildException: Failed to process /Users/rajanbalana/Desktop/Office/Repos/AndroidApp/app/build/intermediates/transforms/FirebasePerformancePlugin/development/debug/180
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform$DexConversionWorkAction.run(DexArchiveBuilderTransform.java:705)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:39)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:55)
at org.gradle.workers.internal.DefaultWorkerExecutor$1.call(DefaultWorkerExecutor.java:105)
at org.gradle.workers.internal.DefaultWorkerExecutor$1.call(DefaultWorkerExecutor.java:99)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 6 more
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/rajanbalana/Desktop/Office/Repos/AndroidApp/app/build/intermediates/transforms/FirebasePerformancePlugin/development/debug/180
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:910)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.access$600(DexArchiveBuilderTransform.java:114)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform$DexConversionWorkAction.run(DexArchiveBuilderTransform.java:697)
... 27 more
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:124)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:101)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:905)
... 29 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at com.android.tools.r8.utils.t.a(:55)
at com.android.tools.r8.D8.run(:11)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
... 30 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Class content provided for type descriptor a.a.b.a.e.A actually defines class a.a.b.a.e.a
at com.android.tools.r8.utils.Reporter.a(:21)
at com.android.tools.r8.utils.Reporter.a(:7)
at com.android.tools.r8.utils.t.a(:36)
... 32 more

Task :app:transformClassesWithDexBuilderForDevelopmentDebug FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithDexBuilderForDevelopmentDebug'.

There was a failure while executing work items
A failure occurred while executing com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform$DexConversionWorkAction
> Failed to process /Users/rajanbalana/Desktop/Office/Repos/AndroidApp/app/build/intermediates/transforms/FirebasePerformancePlugin/development/debug/180

NetBanking

On non-seamless - through NetBanking, notification observer is not called for success or failure of transaction and getting stuck on PUCBWebVC. But notification observer is getting data through card payment or payumoney.

Remote Service Exception:can't deliver broadcast

Device Used: OnePlus 5
App State: Background
Occurs very rarely

Stacktrace:

android.app.ActivityThread$H.handleMessage (ActivityThread.java:1867)

  | android.os.Handler.dispatchMessage (Handler.java:106)
  | android.os.Looper.loop (Looper.java:164)
  | android.app.ActivityThread.main (ActivityThread.java:6753)
  | java.lang.reflect.Method.invoke (Method.java)
  | com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:482)
  | com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

Code Used:
Must be occuring while registering broadcast

` try {
Class.forName("com.payu.custombrowser.Bank");
final Bank bank = new Bank() {
@OverRide
public void registerBroadcast(BroadcastReceiver broadcastReceiver, IntentFilter filter) {
mReceiver = broadcastReceiver;
registerReceiver(broadcastReceiver, filter);
}

            @Override
            public void unregisterBroadcast(BroadcastReceiver broadcastReceiver) {
                if (mReceiver != null) {
                    unregisterReceiver(mReceiver);
                    mReceiver = null;
                }
            }

            @Override
            public void onHelpUnavailable() {
                findViewById(R.id.parent).setVisibility(View.GONE);
                findViewById(R.id.trans_overlay).setVisibility(View.GONE);
            }

            @Override
            public void onBankError() {
                findViewById(R.id.parent).setVisibility(View.GONE);
                findViewById(R.id.trans_overlay).setVisibility(View.GONE);
            }

            @Override
            public void onHelpAvailable() {
                findViewById(R.id.parent).setVisibility(View.VISIBLE);
            }
        };
        Bundle args = new Bundle();
        args.putInt(Bank.WEBVIEW, R.id.webview);
        args.putInt(Bank.TRANS_LAYOUT, R.id.trans_overlay);
        args.putInt(Bank.MAIN_LAYOUT, R.id.r_layout);
        args.putBoolean(Bank.VIEWPORTWIDE, viewPortWide);
        args.putString(Bank.TXN_ID, txnId == null ? String.valueOf(System.currentTimeMillis()) : txnId);
        args.putString(Bank.MERCHANT_KEY, null != merchantKey ? merchantKey : "could not find");
        PayUSdkDetails payUSdkDetails = new PayUSdkDetails();
        args.putString(Bank.SDK_DETAILS, payUSdkDetails.getSdkVersionName());
        if (getIntent().getExtras().containsKey("showCustom")) {
            args.putBoolean(Bank.SHOW_CUSTOMROWSER, getIntent().getBooleanExtra("showCustom", false));
        }
        args.putBoolean(Bank.SHOW_CUSTOMROWSER, true);
        args.putBoolean(Bank.MERCHANT_SMS_PERMISSION, true);//set true for android M,false otherwise args.putBoolean(Bank.AUTO_SELECT_OTP, true); // enable auto opt click in choose page args.putBoolean(Bank.AUTO_APPROVE, true); // enable auto approve as soon as otp received args.putInt(Bank.STORE_ONE_CLICK_HASH, PayUConstants.STORE_ONE_CLICK_HASH_SERVER); bank.setArguments(args); findViewById(R.id.parent).bringToFront(); try { getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.cb_face_out).add(R.id.parent, bank).commit(); }catch(Exception e) { e.printStackTrace(); finish(); } mWebView.setWebChromeClient(new PayUWebChromeClient(bank)); mWebView.setWebViewClient(new PayUWebViewClient(bank)); mWebView.postUrl(url, payuConfig.getData().getBytes()); // add if using PayU SDK (new PayuUtils()).deviceAnalytics(PaymentsActivity.this, Bank.Version, merchantKey, txnId); } catch (ClassNotFoundException e) { mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); mWebView.getSettings().setSupportMultipleWindows(true); mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // Setting view port for NB if(viewPortWide){ mWebView.getSettings().setUseWideViewPort(viewPortWide); } // Hiding the overlay View transOverlay = findViewById(R.id.trans_overlay); transOverlay.setVisibility(View.GONE); mWebView.addJavascriptInterface(new Object() { @JavascriptInterface public void onSuccess() { onSuccess(""); } @JavascriptInterface public void onSuccess(final String result) { runOnUiThread(new Runnable() { @Override public void run() { Intent intent = new Intent(); intent.putExtra("result", result); setResult(RESULT_OK, intent); finish(); } }); } @JavascriptInterface public void onFailure() { onFailure(""); } @JavascriptInterface public void onFailure(final String result) { runOnUiThread(new Runnable() { @Override public void run() { Intent intent = new Intent(); intent.putExtra("result", result); setResult(RESULT_CANCELED, intent); finish(); } }); } }, "PayU"); mWebView.setWebChromeClient(new WebChromeClient() ); mWebView.setWebViewClient(new WebViewClient()); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.postUrl(url, payuConfig.getData().getBytes()); // add if using PayU SDK (new PayuUtils()).deviceAnalytics(PaymentsActivity.this, Bank.Version, merchantKey, txnId);
    }`

problem in non seamless ios app

i have passed all data in

PUUIPaymentOptionVC *paymentOptionVC = [stryBrd instantiateViewControllerWithIdentifier:VC_IDENTIFIER_PAYMENT_OPTION];

        NSLog(@"checking data  ");
        paymentOptionVC.paymentParam = self.paymentParam;
        paymentOptionVC.paymentRelatedDetail = paymentRelatedDetails;

[self.navigationController pushViewController:paymentOptionVC animated:true];

new story board get launch but when click on pay now then its creating problem and hanged.
and show this bug.

-[OS_dispatch_data gunzippedData]: unrecognized selector sent to instance 0x12664d670
2016-08-11 13:17:32.999 SamplePayu[329:22640] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[OS_dispatch_data gunzippedData]: unrecognized selector sent to instance 0x12664d670'
*** First throw call stack:
(0x182b12db0 0x182177f80 0x182b19c4c 0x182b16bec 0x182a14c5c 0x10010ef78 0x10010e34c 0x10023da7c 0x10023da3c 0x1002434e4 0x182ac8d50 0x182ac6bb8 0x1829f0c50 0x1842d8088 0x187cda088 0x100101bf0 0x18258e8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Unable to add custom dialog on onBackButton if customBrowserConfig.setDisableBackButtonDialog(true) set true

I am trying very hard to add my app's custom dialog if a user presses the back button from CBActivity.
As per your document
onBackButton(AlertDialog.Builder alertDialogBuilder) - This callback provides alert dialog access, so customisation can be done to alert dialog.
But In your CBActivityI can find that you are finishing activity if customBrowserConfig.setDisableBackButtonDialog(true) is set true. whic ofcourse finishes the activity and I am not able to add my custom dialog.
Please help.

It should work fine if you remove finish from your CBActivity.
//following code is from CBActivity(unEditable)
@OverRide
public void onBackPressed() {
if (customBrowserConfig != null && customBrowserConfig.getDisableBackButtonDialog() != 1) {
payUCustomBrowser.addEventAnalytics(CBAnalyticsConstant.USER_INPUT, CBAnalyticsConstant.PAYU_BACK_BUTTON_CLICK.toLowerCase());
payUCustomBrowser.showBackButtonDialog();
} else {
payUCustomBrowser.addEventAnalytics(CBAnalyticsConstant.USER_INPUT, CBAnalyticsConstant.MERCHANT_BACK_BUTTON_CLICK);
if (CustomBrowserData.SINGLETON.getPayuCustomBrowserCallback() != null)
CustomBrowserData.SINGLETON.getPayuCustomBrowserCallback().onBackButton(null);
CBActivity.this.finish();
}
}

MERCHANT_INFO_NOT_PRESENT

While integrating Tez, after setting post URL it's showing me MERCHANT_INFO_NOT_PRESENT error and error code is 1002. What does it mean?

Payment Gateway is not working in ( com.payu.payuui V2, com.payu.custombrowser V5.2.3 )

W/chromium: [WARNING:data_reduction_proxy_config.cc(423)] SPDY proxy OFF at startup
W/BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 3773
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.app.Activity.findViewById(int)' on a null object reference
W/System.err: at com.payu.custombrowser.Bank.onPageFinishWebclient(Bank.java:769)
W/System.err: at com.payu.custombrowser.PayUWebViewClient.onPageFinished(PayUWebViewClient.java:90)
W/System.err: at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:560)
W/System.err: at org.chromium.android_webview.AwWebContentsObserver.didFailLoad(AwWebContentsObserver.java:59)
W/System.err: at org.chromium.content.browser.webcontents.WebContentsObserverProxy.didFailLoad(WebContentsObserverProxy.java:99)
W/System.err: at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err: at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:148)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5417)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
A/chromium: [FATAL:jni_android.cc(249)] Check failed: false. Please include Java exception stack in crash report
A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 3773 (FeastooCustomer)
Disconnected from the target VM, address: 'localhost:8612', transport: 'socket'

How to enable Navigation Bar in payu gateway?

Hi,

I am trying to integrate PayU gateway using the Custom browser in iOS.

Everything works fine but there is no back or close button inside the gateway. I have redirected the user to gateway if any error or transaction declined it hangs on gateway if the user to come back to the app.

he just closes the app and doing the same process again.

if possible to have a back button enabled.

I am swift 3.2 and Xcode 9

Can't build the project

I get this error at runtime. I've added linker flags too. Please Help

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_WKUserContentController", referenced from:
      objc-class-ref in libiOSCustomBrowser.a(PUCBWebVC.o)
  "_OBJC_CLASS_$_WKWebView", referenced from:
      objc-class-ref in libiOSCustomBrowser.a(PUCBMagicRetry.o)
      objc-class-ref in libiOSCustomBrowser.a(PUCBBaseConnection.o)
      objc-class-ref in libiOSCustomBrowser.a(PUCBWebVC.o)
      objc-class-ref in libiOSCustomBrowser.a(CBWKConnection.o)
  "_OBJC_CLASS_$_WKWebViewConfiguration", referenced from:
      objc-class-ref in libiOSCustomBrowser.a(PUCBWebVC.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

sURL Response nil

This is payU response function

func payUSuccessResponse(_ payUResponse: Any!, surlResponse: Any!) {

}

payUResponse parameter have:

{"id":7648256671,"mode":"DC","status":"success","unmappedstatus":"captured","key":"4n3THI","txnid":"131280","transaction_fee":"330.00","amount":"330.00","cardCategory":"domestic","discount":"0.00","addedon":"2018-11-14 20:31:32","productinfo":"bus","firstname":"Amit","email":"[email protected]","phone":"9924944405","hash":"b1e836c795432ddf3725158377ea1185e38275eb644e0d6abf9aa2b334cacf3d56d2f7933c6f7f137202854f34aa8ebc473c01931dacf22dd7960992274e50c5","field2":"598081","field5":"131831896125324","field6":"140121831896153374","field9":"Transaction Completed Successfully","payment_source":"payu","PG_TYPE":"UBIFSSPG","bank_ref_no":"831840027349","ibibo_code":"MAST","error_code":"E000","Error_Message":"No Error","name_on_card":"Surani Amitbhai Kana","card_no":"519619XXXXXX0225","is_seamless":2,"surl":"https://www.confirmtkt.com/paymenthandler/payu/surl-v2.php","furl":"https://www.confirmtkt.com/paymenthandler/payupaymentfailure.php"}

But surlResponse is always nil

Cannot verify Bank's VAS Status.

Hi there,

I am trying to verify if bank is open or not by calling function

let webService = PayUWebService()

webService.callVAS(paymentParamsforVas: paymentParams)

webService.getVASStatus(bankCodeOrCardBin: paymentParams.bankCode)...

The response from this call always gives me Invalid card bin or bank code.

I am sure I am not sending the wrong bank code. I have tried with AXIB, HDFB, BOIB, CABB. How come it can throw error for all these bank codes? They're valid, right? Can you please give me more context about this error? Why this is happening?

Emi option not listing up.

I am following your v3.3 seamless integration , where i am not getting up EMI option listing up in array availablePaymentOptionsArray but same is returned for Test environment.

Also in userCredentials i have passed = @"Merchatkey:app_user_id" , is this correct ?

Please make know what could be missing.

App Label - Manifest Merger issue

android:label="@string/app_name" is not default in everyone's case, SDK's manifest shouldn't have any label or whatever solution or resolution is best for this issue.

Surl and Furl not getting called

We have provided a valid surl and furl, while making the request to payuMoney. The payment is successfully done from the Android SDK and success message is returned by the SDK. but surl and furl mentioned in the request while making the payment is not getting called.

Surl and furl is on public domain and accessible from the internet.

Note : Hash value is generated by the server and the same is validated by PayU. Thereafter payment is done successfully, only furl and surl is not getting called.

PayUmoneySdkInitializer.PaymentParam.Builder builder = new PayUmoneySdkInitializer.PaymentParam.Builder();
builder.setKey(key)
	.setTxnId(txnId)
	.setAmount(amount)
	.setProductName(productName)
	.setFirstName(firstName)
	.setPhone(phone)
	.setEmail(email)
	.setsUrl(sUrl)
	.setfUrl(fUrl)
	.setUdf1(udf1)
	.setUdf2(udf2)
	.setUdf3(udf3)
	.setUdf4(udf4)
	.setUdf5(udf5)
	.setIsDebug(isDebug)
	.setMerchantId(merchantId);
return builder.build();

Facing issues with PUCBWebVC

Can you please tell me how can I initialise PUCBWebVC - postParam argument with String?

let payUWebView = try PUCBWebVC(postParam: String!, url: URL!, merchantKey: String!)

As far as I can understand, your paymentParam property in your sample app is of type PayUModelPaymentParams. Do you want me to convert that to string or there is another way which you haven't listed in your documentation? Your documentation says go to SDK Wiki to know more about generating postParams and there you're showing me how to generate PayUModelPaymentParams?

Can you help here?

PayU hash key

Hi
We are successfully integrated payU sdk, and it is working with sample app with test credential, but while we are using production enviroment and generated hash key for php server and using it in mobile sdk it throwing invalid hash key, I go thorough code and see that payment_related_details_for_mobile_sdk has should be pass, so what we have to do for get payment_related_details_for_mobile_sdk hash key

Will be there any React Native support?

Hi,

We have been using Payu Custom Browser in the iOS project.
Now we have moved to React Native is there any Library support for the same.

I haven't seen any docs regarding react native.

Logo

How to add logo to custom Browser configuration besides to merchant site

PayU NetBanking

PayU had created a dummy card for test app. What if some wants to test net-banking ? For each transaction PayU has record of merchantID. For testing purpose with test ID=key: gtKFFx Salt: eCwWELxi ,i used my SBI NET banking. That means there is no merchant for the same transaction. Money goes to PayU guys.
There should be a check on Test ID of dummy transaction for net Banking.

Thank you.
PS: Sbi transaction Ref No: IGOARWSKY8 .

How to get data from PUCBWebVCDelegate protocol response?

The payUResponse comes as Any in PUCBWebVCDelegate protocol and when I try to change Any to [String: Any] it doesn't do that.

Here's the code:

func payUSuccessResponse(_ payUResponse: Any!, surlResponse: Any!) {
        
        if payUResponse != nil {
            print(payUResponse)
        }
        
        if let response = payUResponse as? [String: Any] {
            
            print(response)
            
            if let id = response["id"] as? Int {
                print("ID", id)
                
                createBooking(with: "\(id)", and: false)
            }
        }
    }

It is failing at if let response =. Can you tell me how I am going to fetch id from payUResponse?

Hash mismatch

Last two I am so much frustrated that i faced hash mismatch error while payment and also mail to PayUMoney Developer Support and book appointment many time but they didn't response until yet.
6gga4

Swift 4.2 Error

Error Message:
Module compiled with Swift 4.1 cannot be imported by the Swift 4.2 compiler: Users/...../PayU_coreSDK_Swift.framework/Modules/PayU_coreSDK_Swift.swiftmodule/arm64.swiftmodule

Build environment:
Xcode Version 10.0 (10A255)

Any word on fix for the same?

libiOSCustomBrowser was built without full bitcode ?

Hi there,

I'm facing issue with libiOSCustomBrowser for bitcode enabled app, i cannot archive the app with this library integrated.

Here is the debugger message:
ld: bitcode bundle could not be generated because '/Users/Users/vishwabharath/TestApp/libiOSCustomBrowser.a(CBWSManager.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '/Users/vishwabharath/TestApp/libiOSCustomBrowser.a' for architecture armv7

Please help me out.

Thanks
Viswa

How to import in eclipse.

I can import the sample app successfully in android studio. but, not able to import in eclipse.

Is there any separate document for achieving this please share.

sdkui.jar is missing in the project imported through Eclipse.

PAY NOW button not working

I've installed the SDK PayU_SDK manually with drag & drop as described in the documentation with copy Items if needed flag. then pay now button not working. by default PayUCustomBrowser.framework is set to status Required in the Link Binary With Libraries and Do Not Embed in the -->General-->Frameworks, Libraries and Embedded Content section. And app crashes on startup. but if I change status from Required to Optional then the app runs perfectly but pay now button not working. and if i change the embed from Do Not Embed to any other, Embed & Sign or Embed without Sign then everything runs fine. but then app store shows error Code signing "PayUCustomBrowser.framework" failed. while uploading the app. Please Help ASAP

Reason: image not found Message from debugger: Terminated due to signal 6

dyld: Library not loaded: @rpath/PayUCustomBrowser.framework/PayUCustomBrowser
Referenced from: /Users/jatin/Library/Developer/CoreSimulator/Devices/244F3B04-8895-470C-9D8B-B072AA0AA823/data/Containers/Bundle/Application/98E4984D-E16C-4019-9C9D-35E1D92292EE/Runner.app/Runner
Reason: image not found
Message from debugger: Terminated due to signal 6

PayUBiz - Android: getting Mandatory param hash is missing

I'm integrating PayUBiz in my Android application. I have downloaded sample app from here(i did not do anything changes in sample app). i just run sample app .

now i am working in test environment. it won't work. It gives "Mandatory param hash is missing".

please find attachment ..kindly give me any suggestions to work

whatsapp image 2018-09-21 at 12 58 36 pm

whatsapp image 2018-09-21 at 12 58 27 pm

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.