条纹付款,无法从结帐中获得付款金额

时间:2017-12-12 12:25:07

标签: php laravel stripe-payments

我正在使用条纹'结帐'收款。我在其他网站上成功使用了这个,但是这个特殊的用例与我的正常流程略有不同,并且引起了我的问题。我的客户有时可以选择支付押金或全额付款。在这种情况下,我提出两个按钮,每个按钮类型一个,例如。

<form name="myform" action="paymentpage.php">
... other form stuff
    <!-- Deposit payment button Stripe -->
    <script
      src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      data-key="abcd"
      data-amount="10000"
      data-name="My company name"
      data-description="Deposit payment"
      data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
      data-locale="auto"
      data-zip-code="true"
      data-currency="eur"
      data-label="Pay Deposit">
    </script>
    <!-- Full payment button Stripe -->
    <script
      src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      data-key="avcd"
      data-amount="{{ $stripeCostValue }}"
      data-name="My company name"
      data-description="Full payment"
      data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
      data-locale="auto"
      data-zip-code="true"
      data-currency="eur"
      data-label="Pay in full">
    </script>

我想用cURL在客户做完之后付费,例如

curl https://api.stripe.com/v1/charges \
   -u sk_liveabcd1234: \
   -d amount=1000 \
   -d currency=eur \
   -d description="Deposit payment" \
   -d source=tok_89797oioououo

接收发布数据的Laravel控制器默认包含以下条带字段:

"stripeToken" => "tok_89797oioououo"
"stripeTokenType" => "card"
"stripeEmail" => "customer@whatever.com"

但我不知道他们是否支付了押金,全额付款或他们支付的金额。有没有办法我应该知道他们按下了哪个按钮,或者有没有办法从Stripe付款获得更多数据?我无法弄明白。我无法将金额或付款类型包含为隐藏字段,因为我不知道客户将推送哪个付款按钮。

提前致谢

1 个答案:

答案 0 :(得分:1)

问题是您将两个按钮放在同一个表单中。因此,你不知道点击了哪一个。

最简单的解决方案是简单地使用2个单独的按钮和表单。这样,在每种形式中,您都可以放置一个隐藏字段,让您知道在表单中提交了值时单击了哪个按钮。

另一种解决方案是使用Custom Checkout。这使您在表单中有2个单独的按钮,在JS中,添加一个处理程序以在单击时打开Checkout。这也可以让您轻松跟踪单击的按钮,然后在创建令牌后将此信息提交给您的服务器。