簡體   English   中英

使用Pin Payments進行信用卡處理-pin.net.au-使用omnipay網關,使用card_token方法(pin.js)

[英]Credit Card processing using Pin Payments - pin.net.au - using omnipay gateway, card_token method (pin.js)

我正在嘗試將Pin.net.au CC處理集成到我的網站中。 我正在使用Omnipay庫進行呼叫。

為了不將CC詳細信息存儲在服務器中,我使用了Pin.js令牌方法

在表單提交頁面上(在用戶填寫個人和抄送詳細信息之后),javascript進行了“阻止默認設置”,並將表單(瀏覽器)中的數據直接發送到pin.net.au服務器。 服務器發送一個card_token作為響應,並將表單重新提交給我的服務器。

該令牌已成功接收,我可以在測試中將其輸出。

當我拿到該令牌並將購買請求發送到pin.net.au時,我會遇到麻煩。 根據API文檔,發送令牌(實際上是令牌的整個點)時,無需發送用戶和卡的詳細信息。 我將此令牌與其他必填項(例如電子郵件,金額,描述等)一起發送。

當我在終端上使用cURL並獲得成功充電時,此方法有效。

但是,每次使用Omnipay庫發送此購買/收費請求時,每次獲得422(無效資源)時都會詢問用戶詳細信息和CC信息。 它應該已經從我發送的令牌中填充了這些內容。

我已經搜索了Omnipay和Pin.net.au的API文檔。 我似乎沒有做錯任何事情。 我想念什么?

這是我的收費要求:

$gateway = GatewayFactory::create('Pin');
$gateway->setSecretKey('MY_SECRET_KEY');
$response = $gateway->purchase([
  'email'       => 'user@email.com',
  'description' => 'Package',
  'amount'      => '99',
  'currency'    => 'AUD',
  'card_token'  => Input::get('card_token'),
  'ip_address'  => Input::get('ip_address')
 ])->send();

最后,這並不重要,但是如果您想知道,我正在使用Laravel 4。

您的示例請求的金額為99,Pin Payments費用的最低金額為1美元(金額= 100)。

我認為這不是您要解決的問題,似乎Omnipay不支持使用card_token齒輪。 -如果你去這里查看https://github.com/adrianmacneil/omnipay/blob/master/src/Omnipay/Pin/Message/PurchaseRequest.php#L34 -你可以看到Omnipay是不是與它的發送card_token場請求時,它只會嘗試發送銀行卡詳細信息,顯然您的示例中沒有此信息!

也許您可以與Omnipay開發人員聯系或自己寫請求請求!

這在Omnipay v1.0.4中已得到修復-您應該能夠使用令牌,如下所示:

$gateway = GatewayFactory::create('Pin');
$gateway->setSecretKey('MY_SECRET_KEY');
$response = $gateway->purchase([
  'description' => 'Package',
  'amount'      => '99.00',
  'currency'    => 'AUD',
  'token'       => Input::get('token'),
  'ip_address'  => Input::get('ip_address'),
  'card'        => ['email' => 'user@email.com'],
 ])->send();

暫無
暫無

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

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