贝宝按钮订阅并添加到数据库
PayPal Buttons Subscribe and Add to Database
我在我的网站上设置了一个 PayPal 订阅按钮。我想在成功订阅后做到这一点,我将买家 subscriptionID
添加到我的数据库中。
paypal.Buttons({
createSubscription: function(data, actions) {
return actions.subscription.create({
'plan_id': 'P-PLANID'
});
},
onApprove: function(data, actions) {
$.ajax({
url: 'subscription_capture.php',
type: 'post',
data: { subid: data.subscriptionID},
async: false,
success: function(d) {
location.reload();
},
});
}
}).render('#paypal-button-container');
subscription_capture.php
if(isset($_POST) and isset($_POST['subid'])){
include 'db.php';;
$query = $db->prepare("INSERT INTO `subscription` (`user_id`,`subscriptionID`) VALUES(?,?)");
$query->bind_param('ss', $user_id, $_POST['subid']);
$query->execute();
}
然而,这并不安全,因为任何查看代码的人都可以手动向 subscription_capture.php
发送 POST
请求,从而有可能绕过订阅。有没有更好的方法来处理成功的订阅并将订阅 ID 添加到我的数据库?
我了解到 Paypal 的 Button 是一种比设置 PayPalIPN 更简单的付款方式。
要接收激活订阅的安全通知,请注册 webhook events,例如 BILLING.SUBSCRIPTION.ACTIVATED
(配置文件已激活)或 PAYMENT.SALE.COMPLETED
(已付款)
Webhooks 是非常古老的 IPN 服务的继承者。
我在我的网站上设置了一个 PayPal 订阅按钮。我想在成功订阅后做到这一点,我将买家 subscriptionID
添加到我的数据库中。
paypal.Buttons({
createSubscription: function(data, actions) {
return actions.subscription.create({
'plan_id': 'P-PLANID'
});
},
onApprove: function(data, actions) {
$.ajax({
url: 'subscription_capture.php',
type: 'post',
data: { subid: data.subscriptionID},
async: false,
success: function(d) {
location.reload();
},
});
}
}).render('#paypal-button-container');
subscription_capture.php
if(isset($_POST) and isset($_POST['subid'])){
include 'db.php';;
$query = $db->prepare("INSERT INTO `subscription` (`user_id`,`subscriptionID`) VALUES(?,?)");
$query->bind_param('ss', $user_id, $_POST['subid']);
$query->execute();
}
然而,这并不安全,因为任何查看代码的人都可以手动向 subscription_capture.php
发送 POST
请求,从而有可能绕过订阅。有没有更好的方法来处理成功的订阅并将订阅 ID 添加到我的数据库?
我了解到 Paypal 的 Button 是一种比设置 PayPalIPN 更简单的付款方式。
要接收激活订阅的安全通知,请注册 webhook events,例如 BILLING.SUBSCRIPTION.ACTIVATED
(配置文件已激活)或 PAYMENT.SALE.COMPLETED
(已付款)
Webhooks 是非常古老的 IPN 服务的继承者。