我正在尝试设置Stripe结帐付款系统,但我遇到了PHP问题。当我运行控制台日志时,一切都会执行,除了实际将费用发布到我的Stripe仪表板之外,这是至关重要的。下面我强调了一些可能导致我的谎言错误的领域。如果您需要更多信息,请告诉我,因为我很乐意提供帮助。
注意:“//充值卡下面的行是我认为问题的地方,但我可能会弄错。
`
require_once('Stripe.php');
$stripe = array(
**'secret_key' => 'secret key',**
'publishable_key' => 'publishable key'
);
**\Stripe\Stripe::setApiKey($stripe['secret key']);**
if($_POST) {
$error = NULL;
try{
if (isset($_POST['stripeToken']))
throw new Exception("The Stripe Token was not generated correctly");
//charge the card
**$charge = \Stripe\Charge::create(array(**
'card' => $_POST['stripeToken'],
'amount' => 2000,
'currency' => 'usd'
));
}
catch(Exception $e) {
$error = $e->getMessage();
}
$quotes= array(
"A",
"B",
"C"
);
echo "<h1>Here is your quote!</h1>";
echo "<h2>" . $quotes[array_rand($quotes)]. "</h2>";
} else{
//show the welcome screen
?>
<form action="index.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="publishable key"
data-amount="2000"
data-name="BB Traders"
data-description="Wiping Rags Order"
data-image="/128x128.png">
</script>
</form>
`
答案 0 :(得分:1)
由于访问了不存在的数组元素,您收到Undefined index
通知。只需检查您对阵列的所有访问权限 - $_POST['stripeToken']
或$stripe['secret key']
不存在。
此外,这是一个非常常见的问题,例如here您可以获得有关如何克服此通知的真实解释。
答案 1 :(得分:1)
我真的不知道php但不会
isset($_POST['stripeToken'])
如果令牌IS正确生成,返回true?看起来你可能会因为你想要的相反情况而抛出异常。
尝试暂时或使用
删除该检查isset($_POST['stripeToken'])==FALSE
或者最好的PHP方式是。