【发布时间】:2019-12-31 00:33:14
【问题描述】:
我正在使用 stripe 创建订阅计划,一切进展顺利,但我想创建一个取消订阅按钮,我已通过 stackoverflow 查找答案,但找不到任何帮助、任何有用的资源或代码非常感谢!
高级.php:
<?php
require_once 'app/init.php';
include 'app/dbh.inc.php';
?>
<html>
<body>
<p>You're about to go premium.</p>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Premium</title>
</head>
<body>
<form action="premium_charge.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-key="<?php echo $stripe['publishable']; ?>"
data-name="Connect Kitty"
data-description="Catwalk"
data-email="<?php echo $user->email; ?>"
data-amount="599"
data-currency="usd">
</script>
</form>
</body>
</html>
premium_charge.php:
<?php
require_once 'app/init.php';
if(isset($_POST['stripeToken'])) {
$token = $_POST['stripeToken'];
try {
Stripe_Charge::create([
"amount" => 599,
"currency" => "usd",
"source" => $token,
"description" => $user->email
]);
$db->query("
UPDATE tbl_twitter_user SET premium = 1
WHERE user_id = {$user->user_id}
");
} catch(Stripe_CardError $e) {
}
header('Location: index1.php');
exit();
}
?>
init.php:
<?php
session_start();
require_once 'vendor/autoload.php';
$stripe = [
'publishable' => 'pk_test_QR1JpboiLh5acjEhK6vwclar00N1Y0Evjd',
'private' => 'sk_test_N62K1YeWqBN1WyEsWmK149Rh00It8OTxqg'
];
Stripe::setApiKey($stripe['private']);
$db = new PDO('mysql:host=127.0.0.1;dbname=am', 'nt', 'f9');
$userQuery = $db->prepare("
SELECT user_id, username, email, premium
FROM tbl_twitter_user
WHERE username = :username
");
$userQuery->execute(['username' => $_SESSION['username']]);
$user = $userQuery->fetchObject();
?>
我已经包含了所有代码,因为我不确定我需要使用哪个文件。
如果有人担心 SQL 注入问题,请联系!
【问题讨论】:
-
premium_charge.php进行一次性收费,而不是创建订阅。
标签: php mysql stripe-payments