Wednesday, April 13, 2011

Adding PayPal payment in Android Application

Hi everyone

We all know PayPal is mostly using for transaction in recent days. The following is explain you how to add PayPal payment from your android application

Ready to get started with a simple payment? These steps will walk you through integrating the PayPal library and submitting it to x.com
Step 1 – Set up your sandbox accounts if you haven't already. You can create sandbox accounts by going to developer.paypal.com.
Step 2 – Add the PayPal library (a .jar file) into your Eclipse project, and then add the jar file to the build path. You can right click on the jar file to do this.
Step 3 – Update the AndroidManifest. The manifest will need to include the new activity "com.paypal.android.MEP.PayPalActivity". It will also need to declare the two permissions for Internet and Read-Phone-State.

Code:



<activity android:name="com.paypal.android.MEP.PayPalActivity"

 android:theme="@android:style/Theme.Translucent.NoTitleBar"

 android:configChanges="keyboardHidden|orientation/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>




Step 4 – Import the classes. Open the java file where you are adding the PayPal functionality. You will need to declare the various PayPal classes to use in your project.
Import com.paypal.android.CheckoutButton

Code:



import com.paypal.android.MEP.PayPal;

import com.paypal.android.MEP.PayPalActivity;

import com.paypal.android.MEP.PayPalPayment;

import com.paypal.android.MEP.PayPalAdvancedPayment;

import com.paypal.android.MEP.PayPalInvoiceData;

import com.paypal.android.MEP.PayPalInvoiceItem;

import com.paypal.android.MEP.PayPalReceiverDetails;




Step 5 – Initialize the library by using the initWithAppId method. You'll pass in your App ID and the environment. The environment can either point to Live, Sandbox, or None. The "None" environment puts the library in a demo mode which makes no server calls so that you can continue coding even if you don't have a connection. You can also set the language here.

Code:

PayPal pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_SANDBOX); 




Step 6 – Place a PayPal button on the screen. You can choose from several different button sizes in the integration guide. You'll also pass the type of payment (hard goods, service, donation, personal payment). Then set the onClick listener for the button.
Code:



LinearLayout layoutSimplePayment = new LinearLayout(this);

layoutSimplePayment.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,

    LayoutParams.WRAP_CONTENT));

layoutSimplePayment.setOrientation(LinearLayout.VERTICAL);

CheckoutButton launchSimplePayment = pp.getCheckoutButton(this, PayPal.BUTTON_194x37, CheckoutButton.TEXT_PAY);

launchSimplePayment.setOnClickListener(this);

layoutSimplePayment.addView(launchSimplePayment);

content.addView(layoutSimplePayment);



Step 7 – Implement the onClick function. This is where the actual checkout call happens. You'll specify all of the payment parameters (amount, currency, tax, shipping, recipient's email). You can also use some optional methods to recalculate the amount based on an address. You'll then create a new intent based on the PayPalActivity class and add the payment you just created.
Code:


Public void onClick (View v) {

PayPalPayment payment = new PayPalPayment();

payment.setSubtotal(new BigDecimal("8.25"));

payment.setCurrencyType("USD");

payment.setRecipient("bike-store-sandbox@gmail.com");

payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);

Intent checkoutIntent = PayPal.getInstance().checkout(payment, this);

startActivityForResult(checkoutIntent, 1);




Step 8 – Handle the response. You will receive the results through the onActivityResult method. It will either return OK, Cancelled, or Failure based on how the payment ended. When you receive these calls, you can continue in your app by thanking the buyer or asking them to try later.

Code:


@Override

public void onActivityResults(int requestCode, int resultCode, Intent data) {

   switch(resultCode) {

      case Activity.RESULT_OK:

          break;

       case Activity.RESULT_CANCELED:

           break;

       case PayPalActivity.RESULT_FAILURE:

  }

}



Step 9 – Complete your project. Once you've finished your application, you can submit it to x.com (under the "My Apps" tab). In order for us to test it, you will need to attach a .zip file containing your .apk. PayPal will review the app in 1 business day (for apps using simple payments) and send you a valid App ID for the live environment. You"ll just need to update init method to point to Live with this new ID. (Don't forget to update the recipient to your live email address).



To read more click Here