0

我似乎找不到 Omnipay\SagePay 的说明,并且当 SagePay 发布到我的通知 URL 时,我正在努力完成购买。

谁能提供信息,或指出我可以在哪里找到通知 URL 需要哪些操作和参数才能完成购买?

4

2 回答 2

3

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

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() 然后单独发送响应以确认。

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

干杯

于 2014-02-11T10:35:01.717 回答
1

这里您可以阅读有关集成方法的更多信息或滚动到表格底部以下载服务器文档。我们的工具包可供您下载。

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

几个要点检查 5006 错误(无法重定向到供应商网站。供应商未能提供 RedirectionURL)。

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

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

于 2014-02-10T18:39:11.893 回答