Несколько транзакций с использованием Paypal .NET SDK
Я внедрил Paypal ASP.NET SDK для осуществления платежей на моем веб-сайте, где пользователь оплачивает товары через свою учетную запись Paypal.
То, что я хотел бы сделать, - это отдельные продукты, которые пользователь заказал в различных транзакциях Paypal, чтобы при входе клиента в Paypal они могли видеть их как отдельные подробные транзакции.
Paypal SDK предлагает, что это можно сделать, так как объект транзакции является коллекцией. Это фрагмент моего кода, где я пытаюсь отправить несколько транзакций через:
#region Get products
ItemList itemList = new ItemList();
if (_products.Any())
{
List<Item> payPalItems = _products.Select(p => new Item
{
name = p.Name,
currency = _currency,
price = p.Price.ToString("N"),
quantity = p.Quantity.ToString(),
sku = p.Sku
}).ToList();
itemList.items = payPalItems;
}
#endregion
#region Personal Details
// Address for the payment
Address billingAddress = new Address();
if (_personalDetails != null)
{
billingAddress.line1 = _personalDetails.Address1;
billingAddress.line2 = _personalDetails.Address2;
billingAddress.state = _personalDetails.County;
billingAddress.city = _personalDetails.City;
billingAddress.postal_code = _personalDetails.PostCode;
billingAddress.country_code = _personalDetails.CountryCode;
}
#endregion
#region Payment Amount Details
Details paymentDetails = new Details();
paymentDetails.shipping = _delivery.ToString();
paymentDetails.subtotal = _products.Sum(p => p.Total).ToString("N");
paymentDetails.tax = _tax.ToString();
Amount paymentAmount = new Amount();
paymentAmount.currency = _currency;
// Total must be equal to sum of shipping, tax and subtotal.
paymentAmount.total = ((decimal.Parse(paymentDetails.subtotal) * (100 + _tax) / 100) + _delivery).ToString("N");
paymentAmount.details = paymentDetails;
#endregion
#region Transaction --> Sending multiple transactions here...
// A transaction defines the contract of a payment - what is the payment for and who is fulfilling it.
Transaction trans1 = new Transaction();
trans1.amount = paymentAmount;
trans1.item_list = itemList; // Currently sending the same list of items for testing.
trans1.invoice_number = "Surinder Split Order 1";
Transaction trans2 = new Transaction();
trans2.amount = paymentAmount;
trans2.item_list = itemList; // Currently sending the same list of items for testing.
trans2.invoice_number = "Surinder Split Order 2";
// The Payment creation API requires a list of transactions.
List<Transaction> transactions = new List<Transaction>();
transactions.Add(trans1);
transactions.Add(trans2);
#endregion
При этом я получаю следующее сообщение об ошибке от Paypal: "В настоящее время поддерживается только одна транзакция оплаты".
Похоже, Paypal не позволяет отделить транзакции от одного запроса. Если это так, есть ли другой способ выполнить то, что я пытаюсь достичь?