首页 文章

条纹 - 手动支付

提问于
浏览
1

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

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

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

1 回答

  • 1

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

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

    你要做的就是:

    • 通过Stripe验证付款 . 您验证付款,它进入待处理人员's bank account (they don' t可以再次花费这笔钱) .

    • 渲染您的服务

    • 捕获付款 . 这笔钱会从他们的帐户中扣除并添加到您的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保存在对费用的响应中......响应看起来像这样......

    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

相关问题