【问题标题】:How to provide external account parameter while creating managed account in stripe using php?使用 php 在条带中创建托管帐户时如何提供外部帐户参数?
【发布时间】:2018-11-24 04:08:36
【问题描述】:

我正在使用条带 php 库。

这是我的代码:

$account = \Stripe\Account::create(
    array(
        "country" => "US",
        "managed" => true,
        "legal_entity" => array(
            'address' => array(
                'city' => 'Maxico',
                'country' => 'US',
                "line1" => 'H65',
                "line2" => 'standfort street',
                "postal_code" => '90046',
                "state" => 'CA'
            ),
            'business_name' => 'test business name',
            'business_tax_id' => '000000000',
            'dob' => array(
                'day' => '10',
                'month' => '01',
                'year' => '1988'
            ),
            'first_name' => 'Test',
            'last_name' => 'Tester',
            'personal_id_number' => '000000000',
            'ssn_last_4' => '0000',
            'type' => 'sole_prop'
        ),
        'tos_acceptance' => array(
            'date' => time(),
            'ip' => $_SERVER['REMOTE_ADDR']
        ),
        'external_account' => array(
            "country" => "US",
            "currency" => "usd",
            "account_holder_name" => 'Jane Austen',
            "account_holder_type" => 'individual',
            "routing_number" => "111000025",
            "account_number" => "000123456789"
        )
    )
);

这是我得到的错误:

external_account 哈希必须包含一个“对象”键,指示要创建的 external_account 类型。

任何建议将不胜感激。

【问题讨论】:

  • Account::create 响应将包含external_accounts,为什么要在其中添加?
  • Stripe 需要所有详细信息以进行验证。 external_account 用于银行账户转账。如果我不提供,则不会启用转移。

标签: php stripe-payments


【解决方案1】:

使用Stripe.js 创建bank account token 客户端,然后在创建托管帐户时使用此令牌。 (这是推荐的方式。)

这是一个使用 Stripe.js 创建银行账户令牌的表单示例:https://jsfiddle.net/ywain/L2cefvtp/

你会像这样更新你的代码:

        ...
        'external_account' => 'btok_...' // token returned by Stripe.js
    )

或者,您可以改为从您的服务器传递外部帐户信息。 不建议这样做,因为它会增加应用程序的安全风险。在这种情况下,您必须在数组中包含 'object' => 'bank_account' 键/值对:

        ...
        'external_account' => array(
            "object" => "bank_account",
            "country" => "US",
            "currency" => "usd",
            "account_holder_name" => 'Jane Austen',
            "account_holder_type" => 'individual',
            "routing_number" => "110000000",
            "account_number" => "000123456789"
        )
    )

【讨论】:

    【解决方案2】:

    您必须先添加条带库,然后使用密钥来制作对象

    require_once(APPPATH.'libraries/stripe/init.php');
    
    \Stripe\Stripe::setApiKey($this->privateKey);
    

    这样你就可以在条带上创建客户了。

    Here 是库链接。

    【讨论】:

    • 其实我在这里给出的代码中忘记提及了。但它在我的实际代码中。
    【解决方案3】:

    您可以这样做,创建一个令牌客户端(使用 Android SDK、iOS 或 StripeJS),然后在您的服务器端将令牌传递给外部帐户

    var stripe = require("stripe")("sk_test_c7VExQZarF76Mm59HTcD7NLo");
    
    stripe.accounts.createExternalAccount(
      "acct_1DO7wfJyhqKlvfeX",
      { external_account: "btok_1DZipAJyhqKlvfeXSA5OATY1" },
      function(err, bank_account) {
        // asynchronously called
      }
    
    );
    

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多