giovedì 14 giugno 2012

Inserimento di un pulsante PayPal in un app android.

Dopo aver scaricato dal sito PayPal il pacchetto jar da includere nel progetto e aver configurato correttamente i parametri di PayPal nel manifest,
ho creato il pulsante per la "donazione" all'interno dell'activity.
Di seguito il codice che ho integrato nell'activity:

public class Infopaypal extends Activity {

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        LinearLayout layoutSimplePayment = new LinearLayout(this);
        layoutSimplePayment.setLayoutParams(new LayoutParams(
                        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        layoutSimplePayment.setOrientation(LinearLayout.VERTICAL);
       
        PackageInfo pInfo = null;
  try {
   pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
  } catch (NameNotFoundException e) {} 
        try{
   PayPal pp = PayPal.initWithAppID(this, "APP-00000000000000000",
       PayPal.ENV_LIVE);//ottenere id da paypal

   CheckoutButton launchSimplePayment = pp.getCheckoutButton(this,
       PayPal.BUTTON_194x37, CheckoutButton.TEXT_DONATE);
    
   launchSimplePayment.setOnClickListener(new OnClickListener() {
    public void onClick(View view) {
     PayPalPayment payment = new PayPalPayment();
     payment.setSubtotal(new BigDecimal("1.00"));
     payment.setCurrencyType("EUR");
     payment.setRecipient("blablabla@blabla.it");//cambiare in propria email
     payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);
     Intent checkoutIntent = PayPal.getInstance().checkout(payment, Infopaypal.this);
     startActivityForResult(checkoutIntent, 1);
    }
   });
   layoutSimplePayment.addView(valuePPal);
   layoutSimplePayment.addView(launchSimplePayment);
        }catch (Exception e) {} 
       
        setContentView(layoutSimplePayment);
 }
 @Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {
  String message = "";

  switch(resultCode) {
       case Activity.RESULT_OK:
           //Il pagamento è stato effettuato
           message = "Operation ok";
           break;
       case Activity.RESULT_CANCELED:
           // Il pagamento è stato cancellato dall’utente
        message = "Operation cancelled";
           break;
       case PayPalActivity.RESULT_FAILURE:
           // Il pagamento non è stato effettuato a causa di errore
           String errorMessage = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE);
           message = errorMessage;
    }
    Toast.makeText(Infopaypal.this, message, Toast.LENGTH_SHORT).show();
 } }