2011-10-19 17 views
9

Mi pregunta original (a continuación) fue quizás demasiado específica, así que voy a preguntar algo más general.Active Merchant Integrations (pagos fuera del sitio)

¿Puede alguien me punto en la dirección de un tutorial, ejemplo o documentación sobre el uso de comerciante activo Integrations para apoyar un offsite payment gateway?

listas rdoc del comerciante activo todos los siguientes como el apoyo pasarelas de pago fuera del sitio, pero no he encontrado ninguna tutoriales o ejemplos sobre cómo utilizar ActiveMerchant::Billing::Integrations

  • 2 Pedido
  • Banca Sella GestPay
  • Chronopay
  • -directo eBanking
  • DirecPay
  • VeriSign
  • Moneybookers
  • Nochex
  • página Pago estándar
  • Formulario SagePay
  • Valitor
  • WorldPay

Tan bueno como pueden ser, peepcode y railscasts sólo tienen en cuenta las pasarelas, no integraciones.

¡Muchas gracias!

Mi empresa se está moviendo de Pago exprés a WorldPay negocios Gateway (Hosted página de pago). Estamos usando Rails y Active Merchant.

  1. ¿Es compatible el comerciante activo WorldPay Business Gateway (página de pago alojado)? Creo que sí, a juzgar por the rdoc
  2. ¿Qué argumentos debo proporcionar a ActiveMerchant :: Billing :: Integrations :: WorldPay.new?

Gracias

+0

has hecho para solucionar esto? También estoy teniendo problemas para cambiar :( –

+0

No. Todavía no he encontrado nada – Mike

+0

Dado que está utilizando el pago fuera del sitio, ¿podría simplificar el proceso haciendo el 'POST' a una URL de pago mundial? Al igual que la API del botón de Paypal. –

Respuesta

10

yo hicimos una aplicación sencilla para demostrar como fuera de las instalaciones para los pagos WorldPay y rieles/Activemerchant pueden trabajar juntos.

demostración rieles App - https://github.com/daemonsy/Worldpay-Rails--Off-Site--Integration-Example

Para World Pay alojado pago, lo esencial es el post a su URL pago. Agregue test- a secure.worldpay.com para el modo de prueba. WP requiere cantidad, moneda, ID de instalación y cartId para presentar la página al cliente.

<form action="https://test-secure.worldpay.com/wcc/purchase" method=POST> 

<!-- This next line contains the testMode parameter - it specifies that the submission is a test submission --> 
<input type="hidden" name="testMode" value="100"> 

<!-- This next line contains a mandatory parameter. Put your Installation ID inside the quotes after value= --> 
<input type="hidden" name="instId" value="Your installation ID "> 

<!-- Another mandatory parameter. Put your own reference identifier for the item purchased inside the quotes after value= --> 
<input type="hidden" name="cartId" value="Your ID for the product "> 

<!-- Another mandatory parameter. Put the total cost of the item inside the quotes after value= --> 
<input type="hidden" name="amount" value="The cost of the product "> 

<!-- Another mandatory parameter. Put the code for the purchase currency inside the quotes after value= --> 
<input type="hidden" name="currency" value="currency code e.g. GBP, USD "> 

<!-- This creates the button. When it is selected in the browser, the form submits the purchase details to us. --> 
<input type=submit value=" Buy This "> 

Fuente: http://www.worldpay.com/support/kb/bg/htmlredirect/rhtml.html

Esto crea un simple button que lleva su pedido a Mundial de pago en las que el cliente va a entrar en detalles de la tarjeta de crédito y completar la compra. He incrustado el código anterior en la página show de un controlador de pedidos. e, g, <input type="hidden" name="amount" value="<%[email protected]"%>>. Entonces puede hacer clic en buy this después de enviar la orden. Hay muchas maneras de lograr un POST a World Pay.

Después de lo cual, World Pay puede mostrar una página de respuesta del comprador, enviarle payment response etc. Para la respuesta de pago al trabajo, puede configurar la respuesta de pago callback URL a uno de sus controladores. p.ej. =>http://mysite.com/payment-backend

Esta será una solicitud POST por lo que debe configurar su controlador para manejarlo. Aquí es donde entra en acción. Activemerchant Por ejemplo,

class BackendsController < ApplicationController 
    include ActiveMerchant::Billing::Integrations 
    protect_from_forgery :except=>[:worldpay_return] 

    #in routes => match '/payment-backend'=>'backends#worldpay_return' 
    def worldpay_return 
    notification = WorldPay::Notification.new(request.raw_post) 

    order = Order.find(notification.item_id) 

    if notification.acknowledge 
     begin 
     if notification.complete? 
      order.status = 'success' 
     end 
     rescue 
     order.status = "failed" 
     raise 
     ensure 
     order.save 
     end 
    end 
    render :text =>"Order status for #{order.id} is #{order.status}" 

    end 

end 

lo tanto, el objeto de notificación leerán los parametros en request.raw_post y configurarlas el objeto donde se puede consultar. Encontré los documentos mercantiles activos útiles para decir qué parametros de retorno mapean.

Tenga en cuenta que este controlador es un ejemplo muy crudo. World Pay proporciona algunos métodos para validar la respuesta y esto es compatible con Active Merchant.

ActiveMerchant Docs en WorldPay :: Notificaciones http://rdoc.info/github/Shopify/active_merchant/master/ActiveMerchant/Billing/Integrations/WorldPay Docs World Pay respuesta de pago http://www.worldpay.com/support/kb/bg/paymentresponse/payment_response.html

+0

Gracias. Espero probar esto o ut en el futuro cercano! – Mike

+0

Sin problema =). Me encanta World Pay, pero suspiro, ojalá pudieran mejorar un poco su página alocada. –

+0

Gracias .. buena respuesta, intentaré adaptar esto a otro procesador de pagos – Orlando

Cuestiones relacionadas