【问题标题】:Stripe Simple Checkout Custom Data Field条纹简单结帐自定义数据字段
【发布时间】:2016-04-29 00:46:58
【问题描述】:

我正在尝试使用 Stripe 的简单结账系统。

我想包含一个自定义字段,以便将item_id 与我数据库中的订单相匹配。

https://stripe.com/docs/checkout#integration-simple

他们似乎没有在他们的文档中提到它,但它似乎对在线服务非常重要。 如何附加将与订单一起记录的自定义 ID 字段?

echo '<form action="/charge" method="POST">';
echo '<script ';
  echo 'src="https://checkout.stripe.com/checkout.js" class="stripe-button" ';
  echo 'data-key="pk_test_ksdjhg8dsgsghdsgh" ';
  echo 'data-email="email@example.com" ';
  echo 'data-name="example.com" ';
  //echo 'data-bitcoin="true" ';
  echo 'data-description="Campaign" ';
  echo 'data-currency="usd" ';
  echo 'data-amount="2000" ';
  echo 'data-locale="auto">';
echo '</script>';
echo '</form>';

【问题讨论】:

  • @Mauro 我可以用它来进行简单的集成吗?
  • 如文档所述:仅适用于自定义集成
  • 好吧,我想我可以将它包含在数据描述“Campaign #3523”中......
  • 它很丑...顺便说一句,在 php 中使用 echo 打印 html 也很丑

标签: javascript php stripe-payments


【解决方案1】:

我希望您需要发送带有条带结帐的自定义数据字段并尝试与您的数据库匹配。如果我是对的?按照下面的详细信息。

对于包含自定义数据,您需要使用如下隐藏输入:

echo '<form action="/charge" method="POST">';
echo '<script ';
  echo 'src="https://checkout.stripe.com/checkout.js" class="stripe-button" ';
  echo 'data-key="pk_test_ksdjhg8dsgsghdsgh" ';
  echo 'data-email="email@example.com" ';
  echo 'data-name="example.com" ';
  //echo 'data-bitcoin="true" ';
  echo 'data-description="Campaign" ';
  echo 'data-currency="usd" ';
  echo 'data-amount="2000" ';
  echo 'data-locale="auto">';
echo '</script>';
echo '<input name="item_id" value="SOMEVALUEHERE" type="hidden">';
echo '</form>';

在上面的代码中,我为 item_id 包含了隐藏。您可以从 PHP 页面中的输入字段中获取值,例如:

$item_id = $_POST["item_id"];

【讨论】:

  • 哦,它会邮寄到退货地址吗?
  • 不适合我 - Stripe JS 正在剥离任何额外的表单输入。
  • 亲爱的@Alex,不要完全依赖这个答案,因为这是基于 OP 的问题,因此可能需要根据您的要求进行一些更改。
  • 是的——虽然,没有太多的东西——添加一个隐藏的输入,让 checkout.js 运行并发出它的 POST 请求。我可以告诉你这么多 - 当我这样做时,它会在发出请求之前从表单中删除额外的字段。我现在使用不同的端点 url,后来我猜想跳转到 stripe.js。
【解决方案2】:

我的经验是使用基本的 Stripe 结帐无法使用自定义字段,这与这个非常相似的问题的公认答案一致:

How to add custom fields to popup form of Stripe Checkout

我相信最好的方法是使用 stripe.js 并创建一个自定义支付表单:

https://stripe.com/docs/custom-form

我目前正在解决这个问题,方法是在表单操作中使用不同的端点 URL 来做不同的事情。这很好用,但我最终可能会在生产代码中使用 stripe.js。

【讨论】:

    【解决方案3】:

    你可以做这样的事情来添加额外的信息

    echo '<form action="/charge?item_id=123" method="POST">';
    

    并在收费页面中使用$_REQUEST['item_id']而不是$_POST['item_id']来获取价值。

    不是我喜欢的工作方式,但在这种情况下它解决了问题。

    【讨论】:

      猜你喜欢
      • 2019-01-18
      • 2017-12-31
      • 2021-01-08
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 2013-07-07
      • 2021-07-02
      • 2014-04-28
      相关资源
      最近更新 更多