簡體   English   中英

以獨立於網關的方式從響應中獲取金額

[英]Get amount from response in gateway-independent way

使用Omnipay時,是否可以以與網關無關的方式從響應中檢索處理的金額?

例如,當使用Stripe網關時,我將按以下方式authorize付款( authorize是一個示例,此問題適用於所有網關方法):

$options = [
    'amount' => '10.00',
    'currency' => 'EUR',
];

$response = $gateway->authorize($options)->send();

if ($response->isSuccessful()) {
    $data = $response->getData();

    $amount = $data['amount'] / 100;
}

由於Stripe以美分工作,因此我被迫除以100 ,以在請求中獲得與我指定的單位相同的金額。

但是,並非所有網關都以美分運行,這意味着上面的代碼並非獨立於網關。 同樣,在其他網關中,甚至可能不會將amount參數稱為相同的參數。

注意:我需要檢索已處理的金額以驗證其與請求的金額相同。 如果全能支付可以保證它們相同,那么這將是不必要的,但我認為並非如此。

簡而言之,OmniPay 2.x並不專注於網關返回的數據的規范化。 您完全可以獨自查看原始數據並應用有關其含義的知識。

OmniPay 3.x確實有一個AmountInterface來標准化處理金額的方式(不再是字符串,整數或浮點數),因此有一個Amount類代表處理的金額。 現在,將Amount類用於輸入(請求消息)和輸出(已解析的響應消息)都意味着在數量上沒有任何歧義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM