developer .net paypal paypal-adaptive-payments

.net - developer - paypal web service



PayPal-Payment Summery no muestra elementos establecidos por SetPaymentOptions (1)

Estoy trabajando con Adaptive Payments con PayPal SDK para .Net. Estoy tratando de usar el método SetPaymentOptions para configurar los elementos que deseo mostrar en la sección Resumen de pagos, sin embargo, cuando redirijo el sitio a la página de aprobación de la zona de pruebas con la clave de pago que recibí del método Pay, el resumen de pago solo muestra una fila que dice "Test Store de la cuenta del facilitador" y la cantidad total.

La respuesta arroja un código de éxito, y veo que otros parámetros, como BuisnessName (en DisplayOptions) aparecen en la página.

A continuación está el código que estoy tratando de ejecutar (los parámetros son reemplazados por valores reales que se asignan a cuentas reales, urls, cantidades, etc.). ¿Alguien puede decirme qué estoy haciendo mal?

¡Gracias!

AdaptivePaymentsService service = new AdaptivePaymentsService(); RequestEnvelope envelopeRequest = new RequestEnvelope(); envelopeRequest.errorLanguage = "en_US"; List<Receiver> listReceiver = new List<Receiver>(); Receiver receive = new Receiver((decimal)300.15); receive.email = "[email protected]"; listReceiver.Add(receive); ReceiverList listOfReceivers = new ReceiverList(listReceiver); PayRequest reqPay = new PayRequest(envelopeRequest, "CREATE", "url", "USD", listOfReceivers, "url"); reqPay.sender = new SenderIdentifier(); reqPay.sender.email = "[email protected]"; PayResponse responsePay = service.Pay(reqPay); if (responsePay != null && responsePay.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS")) { SetPaymentOptionsRequest payOptionsReq = new SetPaymentOptionsRequest(); payOptionsReq.displayOptions = new DisplayOptions() { businessName = "My business name" }; payOptionsReq.payKey = responsePay.payKey; payOptionsReq.requestEnvelope = envelopeRequest; payOptionsReq.receiverOptions = new List<ReceiverOptions>() { new ReceiverOptions() { receiver = new ReceiverIdentifier() { email = "[email protected]" }, description = "invoice test", invoiceData = new InvoiceData() { item = new List<InvoiceItem>() { new InvoiceItem() { identifier = "1", itemCount = 2, itemPrice = (decimal)100.0, name = "test", price = (decimal)150.0 }, new InvoiceItem() { identifier = "2", itemCount = 1, itemPrice = (decimal)100.0, name = "test2", price = (decimal)150.15 } }, totalShipping = 0, totalTax = 0 } } }; SetPaymentOptionsResponse r = service.SetPaymentOptions(payOptionsReq); // .... }


Estoy usando pagos adaptados encadenados con pago integrado.

Al usar pagos adaptables, no puede personalizar las páginas de pago más allá de lo que ya ha hecho.

He pasado bastante tiempo hablando por teléfono con PayPal sobre este tema. Las opciones SenderOptions, ReceiverOptions e InvoiceData que configura en Opciones de pago solo están disponibles en Notificaciones de pago instantáneas. La buena noticia es que IPN es fácil de implementar.

http://www.codeproject.com/Tips/84538/Setting-up-PayPal-Instant-Payment-Notification-IPN

Puede analizar la información de IPN y enviar correos electrónicos a su comprador y vendedor.

Si desea que los correos electrónicos de PayPal incluyan información adicional, se limita al campo memo de PaymentRequest. En tu ejemplo:

reqPay.sender = new SenderIdentifier(); reqPay.sender.email = "[email protected]"; string memo = "Item: " + item_name + " " + item_price + SOME_NONSENSE_DELIMITER; requestPay.memo = memo; PayResponse responsePay = service.Pay(reqPay);

SOME_NONSENSE_DELIMITER es necesario para actuar como un final de línea porque, desafortunadamente, los datos de línea y html son ignorados, pero al menos algo aparece en la correspondencia de PayPal con el receptor de esa manera.