- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试使用 stripe 进行付款的简单结帐表单。我按照教程示例 (https://stripe.com/docs/tutorials/forms) 进行操作,除了拒绝卡错误外,一切正常。根据 api,使用 4000000000000002 模拟被拒绝的卡。它只是让我的 charge.php 文件崩溃。这是来自 html 表单和 charge.php 文件的代码。
现场版在这里:http://www.getwebshark.com/trial/step3
表单.html -
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />
<meta http-equiv="Content-type" content="text/html; charset=us-ascii" />
<title>Stripe Getting Started Form</title>
<script type="text/javascript" src="https://js.stripe.com/v1/">
</script><!-- jQuery is used only for this example; it isn't required to use Stripe -->
<script type="text/javascript" src=
"https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
</script>
<script type="text/javascript">
//<![CDATA[
// this identifies your website in the createToken call below
Stripe.setPublishableKey('ihidthis');
function stripeResponseHandler(status, response) {
if (response.error) {
// re-enable the submit button
$('.submit-button').removeAttr("disabled");
// show the errors on the form
$(".payment-errors").html(response.error.message);
} else {
var form$ = $("#payment-form");
// token contains id, last4, and card type
var token = response['id'];
// insert the token into the form so it gets submitted to the server
form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
// and submit
form$.get(0).submit();
}
}
$(document).ready(function() {
$("#payment-form").submit(function(event) {
// disable the submit button to prevent repeated clicks
$('.submit-button').attr("disabled", "disabled");
// createToken returns immediately - the supplied callback submits the form if there are no errors
Stripe.createToken({
name: $('.card-name').val(),
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
return false; // submit from callback
});
});
if (window.location.protocol === 'file:') {
alert("stripe.js does not work when included in pages served over file:// URLs. Try serving this page over a webserver. Contact support@stripe.com if you need assistance.");
}
//]]>
</script>
</head>
<body>
<h1>Trial $4.99 with recurring $74.98 after 18 days</h1>
<!-- to display errors returned by createToken -->
<form action="charge.php" method="post" id="payment-form" name="payment-form">
<div class="form-row">
<label>Name on Card</label> <input type="text" size="20" autocomplete="off" class=
"card-name" />
</div>
<div class="form-row">
<label>Email</label> <input type="text" size="20" autocomplete="off" name=
"email" />
</div>
<div class="form-row">
<label>Card Number</label> <input type="text" size="20" autocomplete="off" class=
"card-number" />
</div>
<div class="form-row">
<label>CVC</label> <input type="text" size="4" autocomplete="off" class=
"card-cvc" />
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label> <input type="text" size="2" class=
"card-expiry-month" /> <span>/</span> <input type="text" size="4" class=
"card-expiry-year" />
</div>
<div class="form-row">
<label>Shipping address</label> <input type="text" size="20" autocomplete="off"
name="address" />
</div>
<div class="form-row">
<label>City</label> <input type="text" size="20" autocomplete="off" name="city" />
</div>
<div class="form-row">
<label>State</label> <input type="text" size="20" autocomplete="off" name=
"state" />
</div>
<div class="form-row">
<label>Zip Code</label> <input type="text" size="20" autocomplete="off" name=
"zip" />
</div><button type="submit" class="submit-button">Submit Payment</button>
</form>
</body>
</html>
charge.php -
<?php
require_once('stripe-php/lib/Stripe.php');
Stripe::setApiKey("ihidthis");
// get the single use token from the form submitted by stripeResponseHandler
// set your secret key: remember to change this to your live secret key in production
// see your keys here https://manage.stripe.com/account
// get the credit card details submitted by the form
$token = $_POST['stripeToken'];
$email = $_POST['email'];
//combine these variables and post them all to stripe's customer description
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$description = $address . " " . $city . " " . $state . " " . $zip;
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "001",
"description" => $description,
"email" => $email
));
Stripe_Charge::create(array(
"amount" => 499, # amount in cents, again
"currency" => "usd",
"customer" => $customer->id
));
echo '<h1>Thank you for your business!</h1>';
?>
最佳答案
Nicolas 在下面是正确的,但由于我使用的是一次性收费并为客户签了定期计划,所以我需要在 try catch block 中同时包含客户和收费。
try {
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "001",
"description" => $description,
"email" => $email)
);
Stripe_Charge::create(array(
"amount" => 499,
"currency" => "usd",
"customer" => $customer->id)
);
$success = 'Your payment was successful.';
} catch (Exception $e) {
$error = $e->getMessage();
}
关于php - Stripe.js/stripe.php - 所有卡错误都有效(过期、cvc、不正确的#),卡被拒绝除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706128/
我可以在不使用收款人信用卡号的情况下将资金从我的 Stripe 账户发送到另一个 Stripe 账户吗?在我的网站中,我希望管理员将资金从他的帐户转移到用户的条纹帐户(而不是用户的银行帐户)。用户的
我曾经有 Angular Stripe Checkout 表单,我正在尝试将表单更新为新的 Stripe Card Elements这是最近推出的。 删除表单输入字段并将其替换为条纹卡片元素后,我的表
我的目标是为产品创建一个简单的支付页面。 在官方文档中,它说在服务器端需要生成 token 才能创建交易,使用: stripe.paymentIntents.create({ amount: re
我是 strip 的新手,打算使用 strip token /收费 api,但 strip 文档说 paymentIntent api 是新的方法。我可以使用任何人吗或 PaymentIntent 是
我正在开发一个项目,我们正在为 Node 使用 Stripe 库。我们还想在这个项目上使用 TypeScript。 我发现 Stripe 没有提供官方 TypeScript 定义,但我找到了一些社区定
通常在使用 stripe 时我可以创建产品并添加税率、运费。付款后我可以创建发票。我想在使用连接帐户时做同样的事情。在我的应用程序中,我希望用户创建商店,并且该商店的产品将保存到他们连接的 Strip
假设我们已经设置了一个 Stripe 订阅计划。即 30 美元/月。 (注意:账单/账户信息存储在 Stripe 上。) 假设我们想为客户提供提前购买一年服务的选项,如果他们这样做,他们只需支付 25
我们知道 Stripe 支持多张信用卡。一个是 default_card。关于这张 Stripe 多张卡片,我需要知道一些答案。 假设我想向我的客户收费,他的 Stripe 个人资料中有 3 张信用卡
有没有办法根据为特定客户生成的最后一张发票过滤发票结果? 穿过 Stripe documentation我可以看到有可能获得即将到来的发票,但我找不到获得最后生成的发票的方法。 最佳答案 如果您使用
我正在使用 Stripe 为客户订阅月度计划。中途客户可能会减少计划数量。所以,在即将开出的发票有时会是负数。 带有负金额的发票行是否意味着客户将这些金额退还到他们的卡中? 谢谢 最佳答案 是的,负发
我正在使用定期计划和电子邮件地址在 Stripe(使用测试模式)中创建客户。到目前为止,一切都按我的预期工作:当客户创建并注册到定期计划时,他们会自动在计划的第一期收费。我所拥有的几乎是逐字逐句wha
我正在尝试使用 Stripe checkout.js 订阅,然后使用 PHP 订阅客户。我的问题是获取他们的电子邮件地址。在文档中找不到任何有用的东西。 文档在这里:https://stripe.co
我在两部分付款过程中使用 Stripe。 IE。 使用 capture = false 对调用 Charge 对象的卡进行预授权 做一些数据库工作 使用电荷捕获为卡充电 如果第 2 步失败(即数据库工
我们使用 Stripe 作为支付网关,我们有一个年度计划,即该计划的计费周期为 1 年。 在计费周期内,用户可以更新选择更多席位,这将导致增加订阅计划的数量。 Subscription subscri
我正在使用 PHP Stripe Payment 表单来收款。付款似乎通过 OK 并在成功完成后将用户带到确认页面。我处于测试模式,能够看到显示在仪表板“付款”部分的付款。但是,当我单击仪表板的“主页
我正在构建一个市场应用程序。我正在使用 Stripe 接受买家付款并将百分比转移给卖家。但是,stripe 只能让您从 Stripe 余额中转移。因此,如果我接受需要 2 个工作日才能显示在我的 st
正如我们所知,Stripe 每张信用卡收费 2.9% + 30 美分。因此,对于每 1 美元的交易,Stripe 大约需要 33 美分。有没有办法批量处理多个 1 美元的交易(由同一客户)并完全收费?
我有一个关于 Stripe 的订阅计划,并将其用于按座位定价。 具体用例是: 客户之前已付款,因此数据库中的客户 ID 和订阅 ID 他们在一个月内删除了所有用户 下个月他们又添加了一个用户 我希望结
在Stripe API文档中,它们显示您可以在客户上应用优惠券。 cust = Stripe::Customer.retrieve("cus_asdasdad") cust.coupon = "COU
我在订阅中添加发票项目时遇到问题,目前无法正常工作。 我已经在 strip 上创建了一个发票项目,并且希望该发票项目包含在定期付款中 这是我的代码,它在第一个发票上添加了一个发票项目,但在下一个发票上
我是一名优秀的程序员,十分优秀!