2014-02-09 29 views
0

我似乎無法找到Omnipay \ SagePay的說明,並且在SagePay發佈到我的通知網址時,我正在努力完成購買。如何使用sagepay服務器(內框)完成與Omnipay Sagepay的購買

任何人都可以提供信息或指出我在哪裏可以找到通知URL需要什麼操作和參數才能完成購買?

+0

Downvote?我認爲這是一個有問題的軟件包,沒有文檔 – Ben

回答

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(),然後分別發送響應確認。

讓我知道你是否需要任何幫助。

乾杯

+0

嗨山毛櫸。感謝您回覆我的評論,並花時間找到我的問題。我終於明白我做錯了什麼。我試圖實例化一個新的消息對象來運行confirm方法,但沒有意識到一個對象被傳入$ response,並且我從那裏調用該方法。我現在有一個成功的測試交易..上面的代碼將幫助我最終實現正確的訂單處理代碼。謝謝 – Ben

+0

..和是..我最初也犯了同樣的錯誤,試圖在我的本地機器上測試:) – Ben

+0

很高興幫助。我結束了使用http://ngrok.com/進行測試,使我的本地主機可以訪問一個可訪問的URL - 這樣節省時間。 – beech

1

here您可以閱讀有關集成方法的更多信息或滾動到表格底部以下載服務器文檔。我們的工具包可供您下載。

當Sage Pay試圖訪問您的NotificationURL時,您是否收到錯誤消息?或者,您是否收到通知,說明Sage Pay已通過您的NotificationURL與您聯繫,但您無法將購物者重定向至RedirectionURL,着陸頁告知購物者交易狀態?

檢查5006錯誤的幾點(無法重定向到供應商網站。供應商未能提供RedirectionURL)。

  • SecurityKey是否匹配?
  • 如果交易沒有在我的Sage Pay中顯示,請提供SIDID與TxID,以便我們可以檢查日誌(如果在72小時內)
  • 是NotificationURL的http還是https URL?考慮html5問題
  • 如果Sage Pay無法訪問NotificationURL,請檢查您是否打開了端口80和443。您之前是否收到過對NotificationURL的任何嘗試?
  • 檢查沒有DNS問題
  • 檢查您的網站是不是假脫機/不是與託管公司的問題?
  • 確保狀態= OK,而不是錯誤或無效

你能否提供更多信息,以便我們可以進一步幫助?

+0

嗨。問題是我錯誤地使用了一個PHP包。我現在正在工作。偉大的電話支持! – Ben