我正在尝试通过条带实现付款,几周前我已经开始工作,但现在它似乎无法正常工作。
我正在使用php来实现:
payment.php
require('stripe/lib/Stripe.php');
$stripe = array(
'secret_key' => 'sk_test_???',
'publishable_key' => 'pk_test_???'
);
Stripe::setApiKey($stripe['secret_key']);
try{
$customer = Stripe_Customer::create(array(
'card' => $_POST['stripeToken'],
'email' => $_POST['email'],
'name' => $_POST['name']
));
$charge = Stripe_Charge::create(array(
'card' => $_POST['stripeToken'],
'amount' => 2500,
'currency' => 'usd',
"description" => "Charge for ..."
));
} catch (Stripe_ApiConnectionError $e) {
$errors[] = 'Network problem, perhaps try again.';
} catch (Stripe_InvalidRequestError $e) {
$errors[] = 'You screwed up in your programming. Shouldnt happen!';
} catch (Stripe_ApiError $e) {
$errors[] = 'Stripe servers are down!';
} catch (Stripe_CardError $e) {
$errors[] = 'Card was declined.';
}
echo "<p>You have paid!</p>";
register.php
<form id="payment-form" action="" method="POST">
<script
src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"
data-key="pk_test_???"
data-amount="2500"
data-name="Purtrainer"
data-description="Monthly Subscription ($25.00)"
</script>
<div id="payment-errors">
<? print_r($errors); ?>
</div>
</form>
在register.php中,我有一些文本输入,包括电子邮件,姓名,密码等......
当我点击“用卡支付”按钮条带提供的js代码,我将在测试信用卡信息,我的用户输入到我的数据库与文本输入的信息,但剥离既不创建顾客也不收费。
任何帮助?
还有其他需要注意的事项 - 直接在URL中访问我的payment.php文件会给我一个错误,说明存在需要条带文件的问题。它说没有文件存在,即使它确实存在:)
答案 0 :(得分:2)
有些事情会浮现在脑海中:
register.php 中表单的操作是本地操作,不是 payment.php 。
data-key="pk_test_???"
应为$stripe['publishable_key']
如评论中所述,SSL在实时模式下是必需的,但不是在测试模式下。
递归检查所有文件的权限,因为测试chmod -R 777 /path/to/stripe
将是一个可靠的测试。
下载条带PHP api文件的新副本。