Advanced Features Guide
Table Of Contents
- Express Checkout Advanced Features Guide
- Contents
- Preface
- Customizing Express Checkout
- PayPal Review Page Order Details
- Providing Gift Options
- Obtaining Buyer Consent to Receive Promotional Email
- Overriding Your Customer Service Number
- Adding a Survey Question
- PayPal Page Style
- Changing the Locale
- Handling Shipping Addresses
- Automatically Filling Out Shipping and Contact Information
- Buyer Pays on PayPal
- Express Checkout on Mobile Devices
- About the Express Checkout Experience on Mobile Devices
- Mobile Platforms Supported by Express Checkout
- About Mobile Express Checkout Integration
- Integrating Express Checkout With Your Mobile Website
- Enabling PayPal Account Optional Checkout on Mobile Devices
- Request Fields Supported by Express Checkout on Mobile Devices
- Locales Supported by Express Checkout on Mobile Devices
- Features Not Supported by Express Checkout on Mobile Devices
- Handling Recurring Payments
- How Recurring Payments Work
- Recurring Payments Terms
- Options for Creating a Recurring Payments Profile
- Recurring Payments With the Express Checkout API
- Recurring Payments Profile Status
- Getting Recurring Payments Profile Information
- Modifying a Recurring Payments Profile
- Billing the Outstanding Amount of a Profile
- Recurring Payments Notifications
- Reference Transactions
- Implementing Parallel Payments
- Integrating giropay with Express Checkout
- Implementing the Instant Update API
- Payment Review
- Express Checkout Dynamic Image Integration
- Immediate Payment
- Revision History
Express Checkout Advanced Features Guide April 2012 71
Implementing Parallel Payments
Integrating Parallel Payments by Using the SOAP API
5
payment2.PaymentAction = PaymentActionCodeType.Order;
payment2.PaymentActionSpecified = true;
payment2.SellerDetails = new SellerDetailsType();
payment2.S ellerDetails.PayPalAccountID = "airline@grupellc.com";
//items for payment2
PaymentDetailsItemType[] payment2_items_array =
new PaymentDetailsItemType[2];
PaymentDetailsItemType payment2_item1 = new PaymentDetailsItemType();
payment2_item1.Amount = new BasicAmountType();
payment2_item1.Amount.currencyID = CurrencyCodeType.USD;
payment2_item1.Amount.Value = "1.00";
payment2_item1.Description = "payment2_item1_desc";
payment2_item1.Name = "payment2_item1_name";
payment2_item1.Number = "payment2_item1_number";
payment2_item1.Quantity = "1";
PaymentDetailsItemType payment2_item2 = new PaymentDetailsItemType();
payment2_item2.Amount = new BasicAmountType();
payment2_item2.Amount.currencyID = CurrencyCodeType.USD;
payment2_item2.Amount.Value = "1.00";
payment2_item2.Description = "payment2_item2_desc";
payment2_item2.Name = "payment2_item2_name";
payment2_item2.Number = "payment2_item2_number";
payment2_item2.Quantity = "1";
payment2_items_array.SetValue(payment2_item1, 0);
payment2_items_array.SetValue(payment2_item2, 1);
//bind the items
payment2.PaymentDetailsItem = payment2_items_array;
//mandatory for api call
payment2.PaymentRequestID = System.Guid.NewGuid().ToString();
//set the totals
decimal tax_total2 = 0;
decimal item_total2 = 0;
foreach (PaymentDetailsItemType Key in payment2_items_array)
{
if (Key.Tax != null)
{
tax_total2 = decimal.Add(tax_total2,
decimal.Multiply(decimal.Parse(Key.Tax.Value),
decimal.Parse(Key.Quantity)));
}
if (Key.Amount != null)
{
item_total2 = decimal.Add(item_total2,
decimal.Multiply(decimal.Parse(Key.Amount.Value),
decimal.Parse(Key.Quantity)));
}
}
payment2.ShippingTotal = new BasicAmountType();
payment2.ShippingTotal.currencyID = CurrencyCodeType.USD;
payment2.ShippingTotal.Value = "3.00";