问题描述
我正在开发Stripe客户端-服务器系统,并且遇到此错误。我认为这是apache重写的错误,但我检查了httpd.conf,并且AllowOverride处于打开状态。
我已经安装了:Composer的条纹,苗条和Dotenv。
非常感谢您的帮助和时间。
Index.html:
<html>
<head>
<title>Buy cool new product</title>
<script src="https://js.stripe.com/v3/"></script>
</head>
<body>
<button id="checkout-button">Checkout</button>
<script type="text/javascript">
// Create an instance of the Stripe object with your publishable API key
var stripe = Stripe('pk_test_XXX');
var checkoutButton = document.getElementById('checkout-button');
checkoutButton.addEventListener('click',function() {
// Create a new Checkout Session using the server-side endpoint you
// created in step 3.
fetch('./create-checkout-session',{
method: 'POST',})
.then(function(response) {
return response.json();
})
.then(function(session) {
return stripe.redirectToCheckout({
sessionId: session.id
});
})
.then(function(result) {
// If `redirectToCheckout` fails due to a browser or network
// error,you should display the localized error message to your
// customer using `error.message`.
if (result.error) {
alert(result.error.message);
}
})
.catch(function(error) {
console.error('Error:',error);
});
});
</script>
</body>
</html>
create-checkout-session.php
<?php
// This example sets up an endpoint using the Slim framework.
// Watch this video to get started: https://youtu.be/sGcNPFX1Ph4.
use Slim\Http\Request;
use Slim\Http\Response;
use Stripe\Stripe;
require 'vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$app = new \Slim\App;
$app->add(function ($request,$response,$next) {
// Set your secret key. Remember to switch to your live secret key in production.
// See your keys here: https://dashboard.stripe.com/account/apikeys
Stripe::setApiKey('sk_test_XXX');
return $next($request,$response);
});
$app->post('/create-checkout-session',function (Request $request,Response $response) {
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],'line_items' => [[
'price_data' => [
'currency' => 'usd','product_data' => [
'name' => 'T-shirt',],'unit_amount' => 2000,'quantity' => 1,]],'mode' => 'payment','success_url' => 'https://example.com/success','cancel_url' => 'https://example.com/cancel',]);
return $response->withJson([ 'id' => $session->id ])->withStatus(200);
});
$app->run();
访问 create-checkout-session.php 时出现错误:
Page Not Found
The page you are looking for could not be found. Check the address bar to ensure your URL is spelled correctly. If all else fails,you can visit our home page at the link below.
现场演示: https://daixie.online/checkout/test2/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)