如何解决贝宝订阅和Webhooks
我通过收费网站建立了一个网站。我想创建一个贝宝订阅。我需要将该订阅与后端(firebase函数-node.js)连接,以便可以更改数据库中的某些数据,以便根据用户是否付款来为其提供不同的内容。我想使用PayPal按钮进行订阅,但找不到将按钮与后端连接的方法,因此PayPal按钮似乎并不是解决我问题的最佳方法。我不能使用Stripe,因为我的国家/地区不支持它。您可以为我的下标付款提供其他解决方案,还是可以显示如何使用PayPal?
解决方法
您可以将Paypal Node SDK用于您的用例,而不必依赖可嵌入的Paypal订阅按钮。该SDK将为您提供与NodeJ更好的集成。
基本上有两个步骤可以做到这一点: 1。)定义开票计划对象 计费计划对象定义了订阅计划,包括周期数,付款频率,任何设置费用等。
var billingPlanAttribs = {
name: 'Food of the World Club Membership: Standard',description: 'Monthly plan for getting the t-shirt of the month.',type: 'fixed',payment_definitions: [{
name: 'Standard Plan',type: 'REGULAR',frequency_interval: '1',frequency: 'MONTH',cycles: '11',amount: {
currency: 'USD',value: '19.99'
}
}],merchant_preferences: {
setup_fee: {
currency: 'USD',value: '1'
},cancel_url: 'http://localhost:3000/cancel',return_url: 'http://localhost:3000/processagreement',max_fail_attempts: '0',auto_bill_amount: 'YES',initial_fail_amount_action: 'CONTINUE'
}
};
当然,您将需要将cancel_url和return_url更改为实际的Firebase函数端点(如果出于开发目的而在localhost中运行函数,则需要更改为localhost)
2。)创建并激活计费计划,因此一旦创建或定义了计费-您将需要创建该对象并激活计费计划,如下所示:
paypal.billingPlan.create(billingPlanAttribs,function (error,billingPlan){
var billingPlanUpdateAttributes;
if (error){
console.error(JSON.stringify(error));
throw error;
} else {
// Create billing plan patch object
billingPlanUpdateAttributes = [{
op: 'replace',path: '/',value: {
state: 'ACTIVE'
}
}];
// Activate the plan by changing status to active
paypal.billingPlan.update(billingPlan.id,billingPlanUpdateAttributes,function(error,response){
if (error){
console.error(JSON.stringify(error));
throw error;
} else {
console.log('Billing plan created under ID: ' + billingPlan.id);
}
});
}
});
同样,所有这些都记录在Paypal's Developer Section中。
Here's also a link to their github example using NodeJs(与Firebase Function相同的底层后端)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。