php - ¿Cómo creo la configuración de página de vuelta con WorldPay?
e-commerce (6)
@Chris realmente respondió a esta pregunta, pero esto es lo que terminé haciendo. De hecho, utilicé el parámetro MC_success, pero lo configuré así:
<input type="hidden" name="MC_success" value="Click here to return to the merchant: <?= $this->RETURNING_PAGE_ON_MY_SITE ?>">
Luego, esto requiere que el comerciante edite su página resultY.html en WorldPay e inserte este parámetro en algún lugar de la sección del cuerpo:
<div><strong><WPDISPLAY ITEM=success></strong></div>
Esto luego mostrará algo como lo siguiente en su exitosa página de respuesta de pago alojada en WorldPay:
Haga clic aquí para volver al comerciante: http://example.com/my-success-return-link-here
Ahora, no todos los clientes sabrán cómo hacer esto. Por lo tanto, en la pasarela de pago que estaba construyendo, hice que enviara un correo electrónico al administrador que alguien pagó con WorldPay y que debería enviar manualmente las fotos al cliente a través de la interfaz de administración de nuestro producto.
Además, uno debe publicar esto en la URL de acción adecuada, que corregí en mi publicación original en la sección EDITAR de arriba.
Por último, pero no menos importante, tenga en cuenta que no podemos hacer una redirección automática. De hecho, WorldPay tiene una política que lo prohíbe estrictamente, que está en rojo en esta página:
http://www.worldpay.com/support/kb/bg/paymentresponse/pr5402.html
"Advertencia: la redirección automática que usa la función de respuesta del comprador está prohibida y dará lugar a que se registre una falla y una posible suspensión de la función".
Los documentos de WorldPay son realmente difíciles de entender después de leerlos y releerlos durante horas . (De hecho, muchos de los documentos me dieron la URL en vivo incorrecta y tuve que buscar en la web y probar cosas con prueba / error para encontrar la URL en vivo, por ejemplo).
¿Cómo creo una configuración de página de vuelta con WorldPay? Con esto, quiero decir que cuando alguien publica el pago y luego paga en el sitio de WorldPay, WorldPay redirigirá automáticamente al comprador a una página en mi sitio si tiene éxito. Quiero saber cómo hacer esto. Creo que lo adiviné a continuación, pero ¿no estoy seguro de si funciona?
<?php ?>
<html><head><title></title></head><body>
<form action="https://secure.wp3.rbsworldpay.com/wcc/purchase" method="post">
<input type="hidden" name="testMode" value="0">
<input type="hidden" name="instId" value="<?= $this->INST_ID ?>">
<input type="hidden" name="cartId" value="<?= $this->CART_ID ?>">
<input type="hidden" name="amount" value="<?= $this->AMOUNT ?>">
<input type="hidden" name="currency" value="<?= $this->CURRENCY_CODE ?>">
<input type="hidden" name="desc" value="Photos">
<input type="hidden" name="MC_success" value="<?= $this->RETURNING_PAGE_ON_MY_SITE ?>">
<input type="submit" value="Click here for the secure payment form">
</form>
</body></html>
EDITAR : el soporte técnico de WorldPay dijo que la acción ahora debe ser " https://secure.worldpay.com/wcc/purchase " y el parámetro MC_success no funcionará. Me recomendó usar un parámetro wpdisplay en la publicación del formulario para que le indiquemos a la página de resultados que intercambie el encabezado y realice un redireccionamiento meta a una página de nuestro sitio. Pedí un ejemplo y me dijo que no había ninguno. Todo lo que pudo hacer fue señalarme esta confusa documentación que realmente no lo describe en absoluto. (No culpo al tipo de soporte técnico, solo está haciendo su trabajo con las herramientas débiles que le ha dado).
Creo que eventualmente, WorldPay le permite a Shopper Response redirigir a su sitio, a través de Meta Refresh.
Todo lo que tiene que hacer es generar la respuesta Html a partir de su devolución de llamada del lado del servidor.
Después de pasar 3-4 días y leer toda la documentación confusa y deficiente de Worldpay, de alguna manera encontré cómo volver a alguna página y procesar la respuesta devuelta por Worldpay. Quería insertar un registro en una base de datos con los detalles de la transacción. Así que estaba buscando una solución. Bueno, aquí está la solución que me funcionó:
- inicie sesión en Worldpay, abra la instalación deseada para editar
- Marque "¿Respuesta de pago habilitada?"
- Proporcione "URL de respuesta de pago" a la página que recibirá / procesará los datos POST de worldpay.
- Introduzca la misma url en "Shopper redirect url"
- Marque "Botón de redirección de comprador habilitado"
- Marque "Habilitar la respuesta del comprador"
- Si usa print_r ($ _ POST) (para usuarios de php) en la url ingresada en la "URL de respuesta de pago", puede ver todos los detalles devueltos por Worldpay.
- Después del procesamiento, puede utilizar la técnica de actualización de meta para redirigir al usuario a otra página o puede imprimir un mensaje de agradecimiento al usuario en la misma página.
Sé que este hilo tiene una antigüedad de 1 año, pero en caso de que si alguien lo encuentra útil, estoy publicando mi solución aquí.
Edición: "Guía de respuesta de pago de WorldPay" documentación
Editar: Aquí hay una captura de pantalla de mi configuración que funcionó para mí
La edición de resultY.html no es estrictamente necesaria, puede omitir el uso del Editor de páginas de pago utilizando la función ''Respuesta de pago''.
En la configuración de instalación, proporcione una URL para un script en su servidor y WorldPay enviará los siguientes parámetros una vez que se haya autorizado un pago (o el comprador haga clic en Cancelar en la página de pago): http://www.worldpay.com/support/kb/bg/paymentresponse/pr5201.html
Si también habilita la configuración "Habilitar la respuesta del comprador", WorldPay descargará cualquier HTML del script que haya especificado y lo usará como página de resultados (alojado en su propio servidor). (Si desea que las imágenes se almacenen de forma segura, deberán cargarse en el Editor de páginas de pago)
Esto le permite crear una página de resultados dinámica sin necesidad de usar resultY.html (OSCommerce y otros carros de la compra pueden usar este método para personalizar la página de resultados)
Creo que no hay ningún problema con el uso de una actualización de META en su página de resultados, siempre que no sea engañosa (por ejemplo, debe dar al comprador el resultado del pago y no enviarlo inmediatamente a su página de inicio).
Puedo simpatizar totalmente, esto también fue una pesadilla para mí. No he usado el parámetro MC_success antes, pero, por lo que sé, no se puede hacer una redirección directa, tiene que mostrar una página de Worldpay después del pago, pero puede personalizar esta página.
Una vez que el pago es exitoso (o no), Worldpay muestra una página HTML al usuario. Estas páginas HTML se almacenan en su panel de control de Worldpay, y si desea personalizarlas, debe cargar un nuevo archivo aquí. Los archivos que se muestran en el éxito y el fracaso de la transacción son resultY.html
y resultC.html
respectivamente.
resultY.html
consultar la Guía de personalización avanzada y buscar resultY.html
en la parte superior derecha de la guía. Esto le brindará ayuda.
En estos archivos, Worldpay sustituye automáticamente ciertas etiquetas como <wpdisplay item=cartId>
y <wpdisplay item=banner default="">
para datos reales. Me gustaría iniciar sesión en su panel de control de Worldpay y descargar los archivos que utiliza actualmente, y luego personalizarlos desde allí.
En una instalación, acabo de incluir una línea en mi página resultY.html como la siguiente ...
<p><a href="http://example.com/worldpay/cartid/<wpdisplay item=cartId>">Redirect back to my shop</a></p>
... lo que llevará al usuario a mi sitio con su cartId en la URL, desde donde obtengo los detalles de su pedido y muestro una página de éxito propia. Pero puede crear sus propias etiquetas enviando campos de publicación adicionales en el formulario de muestra anterior. Los nombres de las variables deben tener el prefijo MC_
, pero luego puede incluirlas en su archivo resultY.html. Es decir.
<form action="https://secure.wp3.rbsworldpay.com/wcc/purchase" method="post">
<input type="hidden" name="testMode" value="0">
<input type="hidden" name="instId" value="<?= $this->INST_ID ?>">
<input type="hidden" name="cartId" value="<?= $this->CART_ID ?>">
<input type="hidden" name="amount" value="<?= $this->AMOUNT ?>">
<input type="hidden" name="currency" value="<?= $this->CURRENCY_CODE ?>">
<input type="hidden" name="desc" value="Photos">
<input type="hidden" name="MC_myText" value="This is my custom text">
<input type="submit" value="Click here for the secure payment form">
</form>
Y en su archivo resultY.html
solo incluya la etiqueta <WPDISPLAY ITEM=MC_myText>
. Debe ser consciente de que todos los campos de formulario son visibles para un usuario si ven la fuente de sus páginas de pago, por lo tanto, poner una MC_downloadLink
válida a alguna descarga valiosa es una mala idea.
Echa un vistazo a estas páginas, son las más útiles en la guía de personalización:
- Estructura de las páginas de resultados
- Parámetros de información dinámica
- Parámetros personalizados
Espero que esto haya sido de alguna ayuda, si tiene alguna pregunta, simplemente agregue un comentario. ¡¡Buena suerte!!
URL de devolución de Worldpay
Es muy simple.
inicie sesión en Worldpay, abra la instalación deseada para editar.
Marque "¿Respuesta de pago habilitada?"
Proporcione "URL de respuesta de pago" como http://yourdomain.com/responce.php
Ingrese la misma url en "Shopper redirect url" http://yourdomain.com/responce.php
Marque "Botón de redirección de comprador habilitado"
Y poner responce.php en el directorio raíz
crear archivo test.txt en root
file_get_contents (''test.txt'', $ _ Post);
puede obtener la matriz de datos de post para test.txt