条纹 - 手动支付

时间:2018-04-03 05:34:33

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

在我的应用程序中,我通过将“付款时间表”设置为“手动”,因特定原因在用户的自定义帐户中持有一些金额。这样我就可以将自定义帐户中的付款最多保留90天。并且,即使在90天之前,用户也可以在某些场景中将付款转发到外部帐户。

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

我怎么可以了解这一点?我怎么知道这些交易是否处于待定状态,然后如何知道它是否可用于银行账户的支付? 有没有办法实现它?请告诉我作为条纹的新手。 任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

你在谈论Auth和Capture吗? Auth是指您确保用户的银行允许用户进行交易。然后,一旦付款被授权,您就可以捕获它,并将资金转移到Stripe。

示例:您正在以5000美元的价格销售Web Development等服务。你想确保这个人先有钱。您还希望确保有钱的人在您为他们提供服务时不会花钱。

你要做的就是:

  1. 通过Stripe验证付款。您验证付款,它将进入人员银行帐户的待处理状态(他们无权再花钱)。
  2. 渲染服务
  3. 获取付款。这笔钱会从他们的帐户中扣除并添加到您的Stripe帐户中。
  4. 通过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保存在对费用的响应中......响应看起来像这样......

    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