Integration
This page describes how to integrate with Google Pay SDK.
Gradle Dependency
Add below dependency in application's build.gradle.
implementation 'in.payu:payu-gpay:1.4.0'
Callbacks
List of the callback function provided by PayU Google Pay:
onPaymentFailure (String payuResponse, String merchantResponse) - Calls when payment fails
onPaymentSuccess (String payuResponse, String merchantResponse) - Calls when payment succeeds
onPaymentOptionInitialisationFailure (int errorCode,String description) - Called for Google Pay initialisation failure where,
errorCode : Error Code
description : Error Description
onPaymentInitialisationSuccess() - Callback when Google Pay is successfully initialized.
onGpayErrorReceived(int errorCode, String description) - Callback when found any error while making payment transaction.
Following are error messages w.r.t. Google Pay Payment failure
- ErrorCode : Description
- 1 : Google Pay payment not enabled on this merchant key // Merchant is not registered for
- 2 : Please check input data. // Input Data is missing to make payment with Google Pay.
- 3 : Payment APIs Error
Set up for Test/Sandbox Merchant
If you are using the SDK with a test merchant, please provide this metadata value to the manifest file else removed these lines below.
<application
<meta-data
android:name="payu_web_service_url"
android:value="https://test.payu.in" />
<meta-data
android:name="payu_post_url"
android:value="https://test.payu.in" />
</application>
Check Payment Availability
Call method checkForPaymentAvailability available in Google Pay to check if Google Pay payment is available or not on the device. This method is called before showing Google Pay as a checkout option.
Sample:
GPay.getInstance().checkForPaymentAvailability(Activity activity, PayUGPayCallback callback, String paymentOptionHash, String merchantKey, String user_credentials)
PayUGPayCallback : the class to provide callbacks
Activity : Activity
paymentOptionHash : Payment Related Details hash
merchantKey : PayU Merchant Key
user_credentials : Provide user credentials or use "default"
Make Payment by Google Pay
After successful initialisation of Google Pay by calling checkForPaymentAvailability method call makePayment method to make payment.
GPay.getInstance().makePayment(Activity activity, String postData, final PayUGPayCallback payUGPayCallback, String merchantKey, View loadingDialogView);
PayUGPayCallback : the class to provide callbacks
Activity : activity instance
postData : PayU postdata
merchantKey : Your Merchant Key
loadingDialogView : ProgressDialog View
Sample PostData
txnid=1524122818080&productinfo=product_info&user_credentials=default&key=*****&surl=**SUCCESS_URL**&furl=**FAILURE_URL&firstname=firstname&email=test@gmail.com&amount=10&udf1=udf1&udf2=udf2&udf3=udf3&udf4=udf4&udf5=udf5&pg=UPI&bankcode=TEZ&hash=***PAYMENT_HASH***
Verify the transaction through Webhooks or polling
Implementation of PayU WebHook
Webhook is a server-to-server callback. Once this feature is activated for merchants, PayU would send an S2S response, in addition to SDK callback, to the merchant. It is recommended for the merchant to process the transaction order status – based upon the S2S response and not via the Browser Redirection/SDK callback response to ensure optimum translation outcomes.
Refer to this document, for Webhook implementation.
There is another option to verify payment through polling, the transaction status after the SDK callback from your backend.
Last updated
Was this helpful?