paypal - developer - 403 Prohibido durante setExpressCheckout
paypal js api (3)
Recibo el siguiente error durante Expresscheckout
en la cuenta de setExpressCheckout
usando el método setExpressCheckout
. Estoy usando la biblioteca SOAP
paypal_base.jar
, paypal_stubs.jar
PM com.paypal.sdk.exceptions.TransactionException <init>
SEVERE: (403)Forbidden
¿Alguien me ayuda a resolver este problema?
Consulte https://www.paypal-notify.com/eventnotification/event_details?eventId=4283 . Puede intentar usar "org.apache.axis.transport.http.CommonsHTTPSender" en el eje para admitir http1.1. Tienes que usar el eje 1.3 o más ya que 1.2 tiene errores con la conexión https
Esto es como un resumen de todas las respuestas anteriores junto con una referencia adicional.
Como mencionó user3405529, siga el enlace y comprenda su problema.
Comerciantes que usan el protocolo HTTP 1.0.
Esto es común para todos los que usan la antigua API de PayPal con el eje 1.4
Este es el problema en mi proyecto.
Remití este enlace para más detalles para comprender y resolver el problema
http://marc.info/?l=axis-user&m=119144869612056
Hay cuatro formas de resolver esto
1) Modificar el código fuente del eje para usar el protocolo HTTP 1.1
String httpver = msgContext.getStrProp(MessageContext.HTTP_TRANSPORT_VERSION);
if (null == httpver) {
httpver = HTTPConstants.HEADER_PROTOCOL_V11;
}
//httpver = httpver.trim();
//if (httpver.equals(HTTPConstants.HEADER_PROTOCOL_V11)) {
// http10 = false;
//}
O configure el contexto del mensaje msgContext.setStrProp (..) como HTTPConstants.HEADER_PROTOCOL_V11
A continuación, reconstruya el eje y mantenga su propio código fuente para referencia
2) Según user3405529 use client-config.wsdd en classpath con java: org.apache.axis.transport.http.CommonsHTTPSender en la etiqueta de transporte
Probé con estos cambios y está funcionando como se esperaba.
Pero ambos enfoques utilizan HTTP 1.1 de manera predeterminada. En nuestro proyecto, ya que no estamos preparados para este cambio de la versión del protocolo HTTP.
ver más detalles en http://www2.research.att.com/~bala/papers/h0vh1.html
3) Actualice el código auxiliar de PayPal y recíclelo para usarlo - No lo intento.
4) Actualice el SDK de PayPal a la última versión ...
Vamos con el SDK de PayPal actualizado. Será útil en el futuro.
Espero que sea útil
agregue un client-config.wsdd a su classpath para usar http1.1. Puede configurar log4j para depurar el nivel para ver si está usando http 1.0 ahora. Si no, esto no te ayudará. Contenido del archivo:
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
</transport>
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>