如何使用sagepay服务器(inframe)完成Omnipay Sagepay的购买

时间:2014-02-09 20:33:15

标签: sagepay omnipay

我似乎无法找到Omnipay \ SagePay的说明,并且在SagePay发布到我的通知网址时,我很难完成购买。

任何人都可以提供信息,或者指出我可以找到通知网址完成购买所需的操作和参数吗?

2 个答案:

答案 0 :(得分:3)

Sagepay很棘手,因为通知部分是由Sagepay而不是客户端完成的,因此请确保您提供可访问Internet的通知URL(这是我的第一个错误)。以下是一些示例代码(使用Laravel)处理Sagepay付款:

public function postProcess($transactionId)
{

    //get the order details from somewhere
    $order = $this->order->findByTransaction($transactionId);

    $response = $this->gateway->completePurchase(array(
        'transactionId' => $order->transaction,
        'transactionReference' => $order->reference,
        'amount' => $order->total,
        'currency' => $order->currency,
    ))->send();

    if ( ! $response->isSuccessful())
    {
        $response->invalid(URL::to('checkout/problem'));
        die();
    }

    $response->confirm(URL::to('checkout/complete/'.$transactionId));

}

正如您所看到的,它与其他示例有很大的不同,因为您需要调用completePurchase()然后单独发送响应以进行确认。

如果您需要帮助,请告诉我。

干杯

答案 1 :(得分:1)

here您可以阅读有关集成方法的更多信息,或者滚动到表格底部以下载服务器文档。我们的套件可供您下载。

当Sage Pay尝试联系您的NotificationURL时,您收到错误消息了吗?或者,您是否收到Sage Pay已通过您的NotificationURL与您联系的通知,但您无法将购物者重定向到RedirectionURL,即登陆页面以告诉购物者交易状态?

很少有人指出要检查5006错误(无法重定向到供应商网站。供应商未能提供RedirectionURL)。

  • SecurityKey是否匹配?
  • 如果交易没有显示在我的Sage Pay中,请使用TxID提供Sage Pay,以便我们检查日志(如果在72小时内)
  • 是NotificationURL的http或https网址吗?考虑html5问题
  • 如果Sage Pay无法访问NotificationURL,请检查您是否打开了端口80和443。您之前是否收到过NotificationURL的任何尝试?
  • 检查不是DNS问题
  • 检查您的网站是不是假脱机/不是托管公司的问题?
  • 确保Status = OK而不是Error或Invalid

您能提供更多信息,以便我们进一步提供帮助吗?