Вот как я это сделал для примера приложения. Я построил корзину в своем приложении (простой словарь элементов, которые я могу добавлять и вычитать в обычном рабочем процессе), а в правом верхнем углу приложения есть кнопка с надписью «Оформить заказ». В этот момент пользователю будет предложено просмотреть его корзину и, используя библиотеку Paypal MPL, я сделаю запрос на создание кнопки «pay with paypal».
UIButton *button = [[PayPal getPayPalInst] getPayButtonWithTarget:self andAction:initiatePayment andButtonType:BUTTON_294x43];
Затем в моем методе «Начальный платеж» я заполняю корзину.
(void)initiatePayment {
[preapprovalField resignFirstResponder];
[PayPal getPayPalInst].shippingEnabled = TRUE;
[PayPal getPayPalInst].dynamicAmountUpdateEnabled = TRUE;
[PayPal getPayPalInst].feePayer = FEEPAYER_EACHRECEIVER;
PayPalPayment *payment = [[[PayPalPayment alloc] init] autorelease];
payment.recipient = @"test_11111111_biz@testing.com";
payment.paymentCurrency = @"USD";
payment.description = @"Cart Checkout";
payment.merchantName = @"Fake Store O Stuff";
payment.subTotal = [NSDecimalNumber decimalNumberWithString:@"10"];
payment.invoiceData = [[[PayPalInvoiceData alloc] init] autorelease];
payment.invoiceData.invoiceItems = [NSMutableArray array];
for(invoiceItem cartItem in Cart.Items) {
PayPalInvoiceItem *item = [[[PayPalInvoiceItem alloc] init] autorelease];
item.totalPrice = cartItem.totalPrice;
item.name = cartItem.name;
[payment.invoiceData.invoiceItems addObject:item];
}
payment.invoiceData.totalShipping = [NSDecimalNumber decimalNumberWithString:@"2"];
payment.invoiceData.totalTax = [NSDecimalNumber decimalNumberWithString:@"0.35"];
[[PayPal getPayPalInst] checkoutWithPayment:payment];
}