【问题标题】:Stripe - Manual payoutStripe - 手动付款
【发布时间】:2018-09-12 08:34:19
【问题描述】:

在我的应用程序中,出于特定原因,我通过将“付款计划”设置为“手动”在用户的自定义帐户中保留了一些金额。这让我可以将自定义帐户中的付款最多保留 90 天。在某些场景下,用户甚至可以在 90 天之前将款项转入外部账户。

现在我的问题是,由于 Stripe 需要 2 到 7 天才能完成付款,所以我只能在处理完成后才能释放付款。

我怎样才能知道呢?我怎么知道交易是否处于待处理状态,然后如何知道它是否可以在银行账户中支付? 有没有办法实现它?请让我知道,因为我是条纹新手。 任何帮助将不胜感激。

【问题讨论】:

    标签: php android ios stripe-payments stripe-connect


    【解决方案1】:

    您是在谈论身份验证和捕获吗?身份验证是您确保用户的银行允许用户进行交易。然后,一旦付款获得授权,您就可以将其捕获,并将资金转移到 Stripe。

    示例:您以 5000 美元的价格销售一项服务,例如 Web 开发。你要确保这个人首先有钱。您还想确保有钱的人在您为他们提供服务时不会花钱。

    您可以这样做:

    1. 通过 Stripe 验证付款。您对付款进行验证,然后它进入该人的银行帐户中的待处理状态(他们无法再使用这笔钱)。
    2. 提供您的服务
    3. 获取付款。这笔钱将从他们的账户中扣除并添加到您的 Stripe 账户中。

    通过 Stripe 的 API 做到这一点的方式是:Auth

    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    \Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
    
    // Token is created using Checkout or Elements!
    // Get the payment token ID submitted by the form:
    $token = $_POST['stripeToken'];
    
    // Charge the user's card:
    $charge = \Stripe\Charge::create(array(
      "amount" => 999,
      "currency" => "usd",
      "description" => "Example charge",
      "capture" => false,
      "source" => $token,
    ));
    

    提供您的服务...然后捕获

    // Set your secret key: remember to change this to your live secret key in production
    // See your keys here: https://dashboard.stripe.com/account/apikeys
    \Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
    
    $charge = \Stripe\Charge::retrieve("ch_1A9eP02eZvKYlo2CkibleoVM");
    $charge->capture();
    

    当您创建费用时,它将在 JSON 结果中返回一个 ID 以及它是否已被捕获。如果要查看Auth是否成功,首先将ID保存在对charge的响应中...响应看起来像这样...

    Stripe\Charge JSON: {
      "id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
      "object": "charge",
      "amount": 2000,
      "amount_refunded": 0,
      "application": null,
      "application_fee": null,
      "balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
      "captured": false,
      ......... more ........
    

    },

    要检查费用,查看是否已授权,您可以执行以下操作...

    \Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
    \Stripe\Charge::retrieve("ch_1CCjK02eZvKYlo2C85c1GGmL");
    

    响应将类似于 ...

    Stripe\Charge JSON: {
      "id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
      "object": "charge",
      "amount": 2000,
      "amount_refunded": 0,
      "application": null,
      "application_fee": null,
      "balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
      "captured": true,
      "created": 1522739568,
        ....more....
      "outcome": {
          "network_status": "approved_by_network",
          "reason": null,
          "risk_level": "normal",
          "seller_message": "Payment complete.",
          "type": "authorized" // AUTHORIZED
    

    然后你充电。完成。

    https://stripe.com/docs/charges

    【讨论】:

    • 如果是正确答案请勾选为正确
    猜你喜欢
    • 2017-04-16
    • 2023-04-11
    • 2015-03-01
    • 2017-06-03
    • 2020-09-18
    • 2017-04-27
    • 2018-10-09
    • 2017-07-28
    • 2014-06-28
    相关资源
    最近更新 更多