2016-11-08 12 views
1

devモードでライブカード/顧客に課金しようとすると、以前にこの問題が発生しました。私は前にストライプでACHチャージをしたことはありません。私は確かにdevモードに入っています。 https://stripe.com/docs/ach#integrating-plaidストライプ+チェック付きACHチャージの作成 - そのようなトークンはありません。ライブモードでも同様のオブジェクトが存在する

JS

var linkHandler = Plaid.create({ 
env: 'tartan', 
clientName: 'Stripe/Plaid Test', 
key: '[Plaid key]', 
product: 'auth', 
selectAccount: true, 
onSuccess: function(public_token, metadata) { 
// Token & Account ID - I use this for subsequent cURL requuest 
console.log('public_token: ' + public_token); 
console.log('account ID: ' + metadata.account_id); 
}, 
}); 

// Trigger the Link UI 
document.getElementById('linkButton').onclick = function() { 
linkHandler.open(); 
}; 

応答が有効です。私は、私は考え混ざってる場所です

{ 
access_token: 'MY_ACCESS_TOKEN', 
account_id: 'MY_ACCOUNT_ID', 
stripe_bank_account_token: 'MY_STRIPE_BANK_ACCOUNT' 
} 

:これも有効なレスポンスオブジェクトになり

$data = array(
      'client_id' => 'MY_CLIENT_ID', 
      'secret' => 'MY_SECRET', 
      'public_token' => 'MY_PUBLIC_TOKEN_FROM_ABOVE', 
      'account_id' => 'MY_ACCOUNT_ID_FROM_ABOVE' 
    ); 


    $string = http_build_query($data); 

    //initialize session 
    $ch=curl_init("https://tartan.plaid.com/exchange_token"); 

    //set options 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    //execute session 
    $keys = curl_exec($ch); 
    $keys = json_decode($keys); 
    //close session 
    curl_close($ch); 

:私は上からpublic_tokenとアカウントIDを使用します。ドキュメントには次のように書かれています: 応答には、検証済みのストライプ銀行口座のトークンIDが含まれています。このトークンをStripe Customerオブジェクトに添付するか、直接その上に課金を作成することができます。

しかし私はこのような銀行口座トークン上の電荷を作成するときに:私は取得

\Stripe\Stripe::setApiKey("sk_test_MY_TEST_KEY"); 

    $charge = \Stripe\Charge::create(array(
     "amount" => 2100, 
     "currency" => "usd", 
     "source" => $keys->stripe_bank_account_token, //(btok_MY_TOKEN_FROM_ABOVE) 
     "description" => "my description" 
    )); 

    var_dump($charge); 

エラーは次のとおりです。致命的なエラー:メッセージでキャッチされない例外「ストライプ\エラーの\ InvalidRequest」「は、このようなトークン: btoken_MY_BANK_TOKEN;同様のオブジェクトがライブモードで存在しますが、この要求を行うためにテストモードキーが使用されました。

+0

あなたの質問の最後が欠落しているようです。 Plaidによって返された銀行口座のトークンを使用しようとするとどうなりますか? APIがエラーメッセージを返しますか? – Ywain

+0

ああ、申し訳ありません。更新しました。 –

答えて

0

これは、ライブ銀行口座トークンを作成したことを意味します。

あなたの統合をテストしたい場合、あなたは次の資格情報とタータンチェックのトークンを生成する必要があります。

  • ユーザー名:test_plaid
  • パスワード:test_good
  • コード:1234

これは、StripeテストシークレットAPIキー()で送信されたAPIリクエストで使用できるテストバンクアカウントトークンを返します)。

ライブチャージを処理する場合は、Plaidリンクで実際のクレデンシャルを使用して実際の銀行口座トークンを戻し、StripeライブシークレットAPIキーと共に送信されたAPIリクエストで銀行口座トークンを使用する必要があります(sk_live_...)。

+0

ありがとうございます。明らかにするために、これは次のようなものになります: https://jsfiddle.net/u2L1cgw6/1/ –

関連する問題