Javascript 条带呼叫已记录,但未进行测试收费
我正在MAMP堆栈上运行,试图创建一个测试电荷。信用卡验证发生,甚至第二次记得我。另外,我的Stripe仪表板上显示了200条POST日志,但没有任何费用记录。所以可能表单代码与服务器代码不一致 具有自定义“注册”按钮的index.html包含以下代码:Javascript 条带呼叫已记录,但未进行测试收费,javascript,php,stripe-payments,Javascript,Php,Stripe Payments,我正在MAMP堆栈上运行,试图创建一个测试电荷。信用卡验证发生,甚至第二次记得我。另外,我的Stripe仪表板上显示了200条POST日志,但没有任何费用记录。所以可能表单代码与服务器代码不一致 具有自定义“注册”按钮的index.html包含以下代码: <script src="bower_components/jquery/dist/jquery.min.js"></script> <!-- In the head --> ... ... <?ph
<script src="bower_components/jquery/dist/jquery.min.js"></script> <!-- In the head -->
...
...
<?php require_once('/php/config.php'); ?>
<form action="/php/charge.php" method="post">
<a href="#" id="stripeButton" class="button">Sign Up</a>
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_*************************',
image: 'img/logo.png',
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
});
document.getElementById('stripeButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'Awesome Subscription',
description: 'Unlimited Awesomeness',
amount: 2000,
panelLabel: '{{amount}} Per Month'
});
e.preventDefault();
});
</script>
</form>
查看我的PHP文件,看看代码是否正在运行。我确实将它添加到了config.php和charge.php文件中,但没有显示“Hello World!”。看来PHP文件没有运行。
我还查看了JavaScript控制台。。。没有错误
那么如何让我的PHP文件“运行” 已解决
是的,MAMP足以使HTML与PHP文件对话。如果MAMP“运行”成功,PHP应该可以正常工作。PHP毕竟是MAMP的一部分
问题是页面上提供的token函数没有任何代码来告诉它该做什么,并将表单提交到PHP文件。您需要用自己的代码填充函数。这是一个愚蠢的错误,但我并没有以这种方式解读它,因为我提供了以下评论:
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
我遇到过,虽然代码似乎有点旧,因为它没有完全匹配Stripe现在在他们的自定义签出页面上的内容,但我使用下面代码中的令牌函数内容来填充我的令牌函数并添加它的提交功能
var token = function(res){
var $input = $('<input type=hidden name=stripeToken />').val(res.id);
$('form').append($input).submit();
};
var令牌=函数(res){
var$input=$('').val(res.id);
$('form').append($input.submit();
};
现在,我的index.html(我的注册按钮所在的位置)如下所示:
<form action="/php/charge.php" method="post">
<a href="#" id="stripeButton" class="special-button">Sign Up</a>
</form>
...
...
<!-- Just before body tag close -->
<script src="bower_components/jquery/dist/jquery.min.js"></script> <!-- jQuery coming from Zurb Foundation install -->
...
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_************************',
image: 'img/logo.png',
token: function(token) {
var $input = $('<input type=hidden name=stripeToken />').val(token.id);
$('form').append($input).submit(); <!-- Code pulled from other StackOverflow thread -->
}
});
document.getElementById('stripeButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'Product Name',
description: 'Product Description',
amount: 2000,
panelLabel: '{{amount}} Per Month'
});
e.preventDefault();
});
</script>
...
...
...
var handler=StripeCheckout.configure({
关键词:“pk掼U测试”,
图片:“img/logo.png”,
令牌:函数(令牌){
var$input=$('').val(token.id);
$('form').append($input.submit();
}
});
document.getElementById('stripeButton')。addEventListener('click',函数(e){
//打开带有更多选项的签出
handler.open({
名称:'产品名称',
description:'产品说明',
金额:2000,
panelLabel:“{amount}}每月”
});
e、 预防默认值();
});
注*从较旧的代码中,res.id
被传递到.val()
中,因此我只是用token.id
替换了res.id
,以反映Stripe在其注释中的建议。因此,实现上述代码将为我提供卡验证检查,以及在我的Stripe仪表板上发布的客户和费用。以及将my带到charge.php以显示费用确认页面的表单
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
var token = function(res){
var $input = $('<input type=hidden name=stripeToken />').val(res.id);
$('form').append($input).submit();
};
<form action="/php/charge.php" method="post">
<a href="#" id="stripeButton" class="special-button">Sign Up</a>
</form>
...
...
<!-- Just before body tag close -->
<script src="bower_components/jquery/dist/jquery.min.js"></script> <!-- jQuery coming from Zurb Foundation install -->
...
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_************************',
image: 'img/logo.png',
token: function(token) {
var $input = $('<input type=hidden name=stripeToken />').val(token.id);
$('form').append($input).submit(); <!-- Code pulled from other StackOverflow thread -->
}
});
document.getElementById('stripeButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'Product Name',
description: 'Product Description',
amount: 2000,
panelLabel: '{{amount}} Per Month'
});
e.preventDefault();
});
</script>