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
Implementing Parallel Payments
Integrating Parallel Payments by Using the SOAP API
5
70 April 2012 Express Checkout Advanced Features Guide
payment1_item2.Number = "payment1_item2_number";
payment1_item2.ItemURL = "http://item2.com";
payment1_item2.Quantity = "2";
payment1_item2.Tax = new BasicAmountType();
payment1_item2.Tax.currencyID = CurrencyCodeType.USD;
payment1_item2.Tax.Value = ".25";
payment1_items_array.SetValue(payment1_item1, 0);
payment1_items_array.SetValue(payment1_item2, 1);
//bind the items
payment1.PaymentDetailsItem = payment1_items_array;
//set the totals
decimal tax_total = 0;
decimal item_total = 0;
foreach (PaymentDetailsItemType Key in payment1_items_array)
{
if (Key.Tax != null)
{
tax_total = decimal.Add(tax_total,
decimal.Multiply(decimal.Parse(Key.Tax.Value),
decimal.Parse(Key.Quantity)));
}
if (Key.Amount != null)
{
item_total = decimal.Add(item_total,
decimal.Multiply(decimal.Parse(Key.Amount.Value),
decimal.Parse(Key.Quantity)));
}
}
payment1.ShippingTotal = new BasicAmountType();
payment1.ShippingTotal.currencyID = CurrencyCodeType.USD;
payment1.ShippingTotal.Value = "3.00";
payment1.ItemTotal = new BasicAmountType();
payment1.ItemTotal.currencyID = CurrencyCodeType.USD;
payment1.ItemTotal.Value = item_total.ToString();
payment1.TaxTotal = new BasicAmountType();
payment1.TaxTotal.currencyID = CurrencyCodeType.USD;
payment1 .TaxTotal.Value = tax_total.ToString();
decimal order_total = decimal.Add(decimal.Add(tax_total, item_total),
decimal.Parse(payment1.ShippingTotal.Value));
payment1.OrderTotal = new BasicA mountType();
payment1.OrderTotal.currencyID = CurrencyCodeType.USD;
payment1.OrderTotal.Value = order_total.ToString();
//mandatory for api call
payment1.PaymentRequestID = System.Guid.NewGuid().ToString();
//add the merchants to the array
PaymentDetailsArray.SetValue(payment1, 0);
//*******************************************************
//merchant 2
//*******************************************************
PaymentDetailsType payment2 = new PaymentDetailsType();