I need to send the list of item purchased and whose payments are being done using Paypal so that the buyer as well as the vendor can see that what products have the been purchased or sold. Here is the snippet of what I did for the same, by following the Github code of PayPalCheckout but I get each time. Here is my code snippet
private PayPalPayment prepareFinalCart() {
List<PayPalItem> productsInCart = new ArrayList<>();
double price;
for (Program program : mPrograms) {
if (null != program.programPrices.get(program.selectedPriceIndex).priceAfterDiscount) {
price = program.programPrices.get(program.selectedPriceIndex).priceAfterDiscount;
} else {
price = program.programPrices.get(program.selectedPriceIndex).price;
}
PayPalItem item = new PayPalItem(program.type, 1, //Quantity
new BigDecimal(price), //price
Config.DEFAULT_CURRENCY, // currency
+ String.valueOf(program.id)); // stock keeping unit
productsInCart.add(item);
}
if (App.sCouponDetails != null) {
App.sCouponDetails.calculateDiscount(mFinalCost);
}
PayPalItem[] items = new PayPalItem[productsInCart.size()];
items = productsInCart.toArray(items);
// Total amount
BigDecimal subtotal = new BigDecimal(mFinalCost);
// If you have shipping cost, add it here
BigDecimal shipping = new BigDecimal("0.0");
// If you have tax, add it here
BigDecimal tax = new BigDecimal("0.0");
PayPalPaymentDetails paymentDetails = new PayPalPaymentDetails(shipping, subtotal, tax);
BigDecimal amount = subtotal.add(shipping).add(tax);
// Getting Purchased Programs type
StringBuilder programsType = new StringBuilder();
for (int i = 0; i < mPrograms.size(); i++) {
if (i == mPrograms.size() - 1) {
programsType.append(mPrograms.get(i).type);
} else {
programsType.append(mPrograms.get(i).type).append(",");
}
}
PayPalPayment payment = new PayPalPayment(amount, Config.DEFAULT_CURRENCY, "Total Amount: "/*programsType.toString()*/, Config.PAYMENT_INTENT);
payment.items(items).paymentDetails(paymentDetails);
// Custom field like invoice_number etc.,
//payment.custom("This is text that will be associated with the payment that the app can use.");
return payment;
}
Please suggest what's the issue here ?
Actually those b/c/d/f etc parameters are from PayPalPayment class. I just given its Json format.
Here is what PayPalPayment class looks like-