Je suis en train de développer une application qui nécessite un paiement en ligne.
Je veux payer le montant de la facture de mon application au propriétaire du magasin en monnaie indienne (roupie). J'ai essayé un exemple de démonstration en utilisant MPL.
J'ai créé une classe en tant que :
public class MainActivity extends Activity implements OnClickListener {
private boolean _paypalLibraryInit = false;
final static public int PAYPAL_BUTTON_ID = 10001;
CheckoutButton launchPayPalButton;
public static String resultTitle;
public static String resultInfo;
public static String resultExtra;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initLibrary();
if (_paypalLibraryInit) {
showPayPalButton();
} else {
finish();
}
}
/** init method **/
public void initLibrary() {
PayPal pp = PayPal.getInstance();
if (pp == null) {
// This is the main initialization call that takes in your Context,
// the Application ID, and the server you would like to connect to.
pp = PayPal.initWithAppID(this, "APP-80W284485P519543T",PayPal.ENV_SANDBOX);
// -- These are required settings.
pp.setLanguage("en_US"); // Sets the language for the library.
// --
// -- These are a few of the optional settings.
// Sets the fees payer. If there are fees for the transaction, this
// person will pay for them. Possible values are FEEPAYER_SENDER,
// FEEPAYER_PRIMARYRECEIVER, FEEPAYER_EACHRECEIVER, and
// FEEPAYER_SECONDARYONLY.
pp.setFeesPayer(PayPal.FEEPAYER_EACHRECEIVER);
// Set to true if the transaction will require shipping.
pp.setShippingEnabled(true);
// Dynamic Amount Calculation allows you to set tax and shipping
// amounts based on the user's shipping address. Shipping must be
// enabled for Dynamic Amount Calculation. This also requires you to
// create a class that implements PaymentAdjuster and Serializable.
pp.setDynamicAmountCalculationEnabled(false);
// --
_paypalLibraryInit = true;
}
}
private void showPayPalButton() {
// Generate the PayPal checkout button and save it for later use
PayPal pp = PayPal.getInstance();
launchPayPalButton = pp.getCheckoutButton(this, PayPal.BUTTON_278x43,CheckoutButton.TEXT_PAY);
// Add the listener to the layout
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
params.bottomMargin = 10;
params.leftMargin= 50;
launchPayPalButton.setLayoutParams(params);
launchPayPalButton.setId(PAYPAL_BUTTON_ID);
// The OnClick listener for the checkout button
launchPayPalButton.setOnClickListener(this);
//((RelativeLayout) findViewById(R.id.RelativeLayout01)).addView(launchPayPalButton);
((RelativeLayout) findViewById(R.id.rl)).addView(launchPayPalButton);
}
@Override
public void onClick(View v) {
// Use our helper function to create the simple payment.
PayPalButtonClick(v);
// Use checkout to create our Intent.
// Intent checkoutIntent = PayPal.getInstance().checkout(payment, this,
// new ResultDelegate());
// Use the android's startActivityForResult() and pass in our Intent.
// This will start the library.
// startActivityForResult(checkoutIntent, request);
}
public void PayPalButtonClick(View arg0) {
// Create a basic PayPal payment
PayPalPayment payment = new PayPalPayment();
// Set the currency type
payment.setCurrencyType("USD");
// Set the recipient for the payment (can be a phone number)
payment.setRecipient("abc@gmail.com");
// Set the payment amount, excluding tax and shipping costs
payment.setSubtotal(new BigDecimal("1.0"));
// Set the payment type--his can be PAYMENT_TYPE_GOODS,
// PAYMENT_TYPE_SERVICE, PAYMENT_TYPE_PERSONAL, or PAYMENT_TYPE_NONE
payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);
// PayPalInvoiceData can contain tax and shipping amounts, and an
// ArrayList of PayPalInvoiceItem that you can fill out.
// These are not required for any transaction.
PayPalInvoiceData invoice = new PayPalInvoiceData();
// Set the tax amount
invoice.setTax(new BigDecimal("0"));
Intent checkoutIntent = PayPal.getInstance().checkout(payment, this /*, new ResultDelegate()*/);
this.startActivityForResult(checkoutIntent, 1);
}
public void PayPalActivityResult(int requestCode, int resultCode, Intent intent) {
if(requestCode != 1)
return;
Toast.makeText(getApplicationContext(),resultTitle , Toast.LENGTH_SHORT).show();
}
}
Et la classe de délégué du résultat est :
public class ResultDelegate implements PayPalResultDelegate, Serializable {
private static final long serialVersionUID = 10001L;
/**
* Notification that the payment has been completed successfully.
*
* @param payKey the pay key for the payment
* @param paymentStatus the status of the transaction
*/
public void onPaymentSucceeded(String payKey, String paymentStatus) {
MainActivity.resultTitle = "SUCCESS";
MainActivity.resultInfo = "You have successfully completed your transaction.";
MainActivity.resultExtra = "Key: " + payKey;
}
/**
* Notification that the payment has failed.
*
* @param paymentStatus the status of the transaction
* @param correlationID the correlationID for the transaction failure
* @param payKey the pay key for the payment
* @param errorID the ID of the error that occurred
* @param errorMessage the error message for the error that occurred
*/
public void onPaymentFailed(String paymentStatus, String correlationID,
String payKey, String errorID, String errorMessage) {
MainActivity.resultTitle = "FAILURE";
MainActivity.resultInfo = errorMessage;
MainActivity.resultExtra = "Error ID: " + errorID + "\nCorrelation ID: "
+ correlationID + "\nPay Key: " + payKey;
}
/**
* Notification that the payment was canceled.
*
* @param paymentStatus the status of the transaction
*/
public void onPaymentCanceled(String paymentStatus) {
MainActivity.resultTitle = "CANCELED";
MainActivity.resultInfo = "The transaction has been cancelled.";
MainActivity.resultExtra = "";
}
}
J'ai également téléchargé le fichier Paypal_MPL.jar et je l'ai importé dans l'application et j'ai créé un compte personnel Paypal.
1. La question est maintenant de savoir comment tester l'application.
2. Suis-je sur la bonne voie ?
3. Que dois-je faire d'autre ?
Je ne comprends pas bien les étapes de la mise en œuvre de la MPL et de la comment créer un compte sur Paypal, tester le compte, lier le compte à l'application, etc. .
Merci de me conseiller et de me guider.