reactjs - 如何在 React 和 Flask 中检测过期的 PayPal 订阅?
问题描述
我在一个网站上工作,用户可以购买高级订阅。我将 React 用于 Front,Flask 用于 Back。我已经使用 react-paypal-button-v2 成功创建了订阅按钮。 https://www.npmjs.com/package/react-paypal-button-v2
<PayPalButton
options={{
vault: true,
clientId: "ID OF SELLOR",
currency: "EUR"
}}
createSubscription={(data, actions) => {
return actions.subscription.create({
plan_id: 'ID OF MY PLAN'
});
}}
onApprove={(data, actions) => {
return actions.subscription.get().then(function(details) {
return axios.post('/api/payment', {
user_id: localStorage.getItem('id');,
order_id: data.orderID,
subscription_id: data.subscriptionID
})
.then(function (){
document.location.href="/";
console.log(data);
})
});
}}
/>
被调用的 api 在我的数据库中将高级列更改为 true。现在我想检测订阅是否被取消或过期,将用户的高级列返回为 false。
注意:我使用 postgreSQL
@payment.route('', methods=['POST'])
def paypal_payement():
if request.method == 'POST':
req = request.get_json(force=True)
today = datetime.now()
id_user = req.get('user_id')
id_order = req.get('order_id')
id_subscription = req.get('subscription_id')
user = models.Utilisateur.query.filter_by(id=id_user).first()
order = models.Commandes(id_order, id_user, id_subscription, today)
db.session.add(order)
user.premium = True
db.session.commit()
return 'SUCCESS'
你有我的解决方案吗?谢谢
解决方案
创建一个webhook 侦听器并注册该BILLING.SUBSCRIPTION.CANCELLED
事件。
推荐阅读
- javascript - 我将如何为每个项目实现一组关于数组的指令?
- android - 如何在 Android 中使用 SystemSound.play(SystemSoundType.click)?
- c# - Microsoft.Office.Interop.Excel 读取错误颜色?
- php - Safari 浏览器中的 codeigniter 会话
- sql - 通过 Oracle SQL 将特定字符串与另一个字符串(多个值)进行比较
- reactjs - React 的 PureComponent 可以使用 `setState` 吗?
- python - Pymongo中MongoDB的Python模拟聚合函数
- android - 无法从 OpenStreetMap 下载地图数据
- info.plist - 如何打开 .plist 文件作为源代码 xcode 11 beta 5
- powerbi - 根据用户在 Microsoft Power BI 中的当前位置显示字段