1. Integration Steps
Step 1: Create a PayU account
First, create a PayU account. See Register for a Merchant Account.
Step 2: Set up build.gradle
Add the following URL in the root project’s build.gradle:
allprojects
{
repositories {
maven {
url "https://phonepe.mycloudrepo.io/public/repositories/phonepe-intentsdk-android"
}
}
}
Add the following dependency in your application’s build.gradle:
implementation 'in.payu:phonepe-intent:1.7.5'
Step 1: Create Callbacks Instance
PayUPhonePeCallback provides the following callback methods.
- onPaymentOptionFailure (String payuResponse, String merchantResponse): Calls when payment fails.
- onPaymentOptionSuccess (String payuResponse, String merchantResponse): Calls when payment succeeds.
- onPaymentOptionInitialisationFailure (int errorCode, String description): Called for PhonePe initialisation failure.
- onPaymentOptionInitialisationSuccess (boolean result): Callback when PhonePe is successfully initialised.
Following are error messages concerning PhonePe initialization failure.
Error Code | Error Code | Description |
---|---|---|
1 | MERCHANTKEY_NOT REGISTER_FOR_PHONEPE | Merchant is not registered for PhonePe with PayU |
Create an instance of PayUPhonePeCallback similar to the following code block:
PayUPhonePeCallback payUPhonePeCallback = new PayUPhonePeCallback() {
@Override
public void onPaymentOptionFailure(String payuResponse, String merchantResponse) {
//Called when Payment gets failed.
}
@Override
public void onPaymentOptionInitialisationSuccess(boolean result) {
super.onPaymentOptionInitialisationSuccess(result);
// Merchants are advised to show PhonePe option on their UI after this callback is called.
}
@Override
public void onPaymentOptionSuccess(String payuResponse, String merchantResponse) {
//Called when Payment gets successful.
}
@Override
public void onPaymentOptionInitialisationFailure (int errorCode, String description) {
//Callback thrown in case PhonePe initialisation fails.
}
};
Step 2: Set up for Test/Sandbox merchant
If you are using the SDK with a test merchant, provide the following metadata value to the manifest file:
<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>
Step 3: Check for PhonePe availability
SDK provides the checkForPaymentAvailability method to check if PhonePe payment is available or not on the device. This method must be executed before showing PhonePe as a checkout option.
PhonePe.getInstance().checkForPaymentAvailability(Activity activity, PayUPhonePeCallback callback, String paymentOptionHash, String merchantKey, String user_credentials)
Where:
- PayUPhonePeCallback: the class to provide callbacks
- Activity : Activity
- paymentOptionHash: Payment Related Details hash
- merchantKey: PayU Merchant Key
- user_credentials: Provide user credentials or use “default”
To generate PaymentOption Hash, refer to Hash Generation.
Step 4: Make Payment by PhonePe
After successful initialization of PhonePe by calling checkForPaymentAvailability method, call makePayment method to make payment.
PhonePe.getInstance().makePayment(PayUPhonePeCallback callback, Activity activity, String postData,boolean isUserCacheEnabled, View customDialogView);
Where:
- PayUPhonePeCallback: the class to provide callbacks
- Activity: activity instance
- postData: PayU postdata
- isUserCacheEnabled: To Enable/Disable User Cache
- customDialogView: Provide your Custom Progress dialog view (Optional)
To generate Payment Hash, refer to Hash Generation.
Sample PostDatafor hash
txnid=1524122818080&productinfo=product_info&user_credentials=default&key=*****&surl=**SUCCESS_URL**&furl=**FAILURE_URL&firstname=firstname&[email protected]&amount=10&udf1=udf1&udf2=udf2&udf3=udf3&udf4=udf4&udf5=udf5&pg=CASH&bankcode=PPINTENT&hash=***PAYMENT_HASH***
Updated 7 days ago