Creo que su problema no es la API de PayPal. ¿Ha comprobado que todo funciona perfecto con sus parámetros pasados a PayPal en este caso de descuento del 50%?
Después de la Documentación de PayPal, debe proporcionar un valor negativo para reflejar un descuento en un pedido. Entonces todo se suma a la cantidad total.
Fuente: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECCustomizing
de actualización con código: (Nick)
que tienen un servicio de paypal que hace todo tipo de cosas, pero el siguiente código debería darle una idea de cómo funciona el descuento. El descuento no es un tipo especial, es un producto como cualquier otro, excepto que se disfraza llamándolo como un descuento y estableciendo su precio en un número negativo.
List<PaymentDetailsItemType> items = paymentDetails.PaymentDetailsItem;
foreach (ShoppingCartItem item in cart.ShoppingCartItems)
{
items.Add(new PaymentDetailsItemType
{
Name = item.Book.Title,
Quantity = item.Quantity,
Number = item.BookId.ToString(),
Amount =
new BasicAmountType
{currencyID = CurrencyCodeType.USD,
value = (item.Book.Price).To2Places()}
});
}
if (cartTotals.Discount > 0)
{
items.Add(new PaymentDetailsItemType
{
Name = "Promo Code Discount",
Quantity = 1,
Number = "PromoCode",
Amount =
new BasicAmountType
{
currencyID = CurrencyCodeType.USD,
value = (cartTotals.Discount*-1).To2Places()
}
});
}
Establecí TaxTotal, ShippingTotal, ItemTotal y OrderTotal. Todo esto funciona, excepto cuando se establece un código de descuento, ya que el artículo + envío + impuesto no se sumará al total de la orden, ya que OrderTotal tiene una cantidad extraída. No hay ningún lugar que pueda encontrar para establecer una cantidad de descuento. ¿Algunas ideas? – StephenPAdams
@look respuesta actualizada – Skomski
¿Está diciendo que necesito crear un elemento y establecer el valor en negativo? ¿Y luego actualizo el ItemTotal para reflejar todos los artículos así como también el artículo negativo que agregué a la cuenta para el descuento? – StephenPAdams