如何在 React 和 Flask 中检测过期的 PayPal 订阅?
Posted
技术标签:
【中文标题】如何在 React 和 Flask 中检测过期的 PayPal 订阅?【英文标题】:How to detect expired PayPal subscription in React & Flask? 【发布时间】:2021-07-31 05:18:50 【问题描述】:我正在开发一个网站,用户可以购买高级订阅。我将 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。现在想检测订阅是取消还是过期,把用户的premium一栏改回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'
你有我的解决方案吗?谢谢 ????
【问题讨论】:
【参考方案1】:创建一个webhook listener 并注册BILLING.SUBSCRIPTION.CANCELLED
事件。
【讨论】:
以上是关于如何在 React 和 Flask 中检测过期的 PayPal 订阅?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 React Native 和 Flask 之间发送图像?
如果 Firebase 令牌在 React 应用程序中过期,如何不调用任何 api 端点?