4

以前、開発モードでライブ カード/顧客に請求しようとしたときに、この問題が発生しました。以前にストライプで ACH を請求したことはなく、確かに開発モードになっています。 https://stripe.com/docs/ach#integrating-plaid

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();
};

応答は有効です。上記の public_token とアカウント ID を使用します。

    $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);

これにより、有効な応答オブジェクトも得られます。

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

これは私が混乱していると思います。ドキュメント には次のように書かれています: 応答には、検証済みの Stripe 銀行口座のトークン 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 );

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

4

1 に答える 1

1

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

統合をテストする場合は、次の資格情報を使用して Plaid トークンを生成する必要があります。

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

これにより、Stripe テスト シークレット API キー ( ) と共に送信される API リクエストで使用できるテスト銀行口座トークンが返されますsk_test_...

ライブ請求を処理する場合は、Plaid リンクで実際の資格情報を使用して実際の銀行口座トークンを取得し、Stripe ライブ シークレット API キー ( sk_live_...) で送信された API 要求で銀行口座トークンを使用する必要があります。

于 2016-11-08T15:41:48.423 に答える