Job description
I am looking for a person with experience in integrating payments.
Frontend:
- it's ready (simple nuxt / vue app with firebase auth and PayPal buttons)
- it can be freely modified
Backend:
- firebase functions (nodejs) to receive webhooks (not IPN !!! This should be done with the new method).
- is to update the user's status in the firestore with each change in the subscription important for business, i.e .:
- User selects and buys a plan (monthly / 3-month / annual with a 14-day trial period) - the server adds fields in the users table (for the user who made the purchase):
membership: "premium"
subscribedFrom: <purchase date>
trial: true
trialExpires: <paypal trial end date>
subscriptionExpires: <date of next paypal payment>
billingType: <yearly / every-3-months / monthly>
subscriptionCanceled: false
The trial period is ending - trial: false
The payment was successfully downloaded from the user account - subscriptionExpires: <date of next PayPal payment>
Payment cannot be taken from the user's account at the end of the billing period:
membership: "basic"
subscriptionCanceled: true
If the payment is delayed, the server should handle it (re-set):
membership: "premium"
subscriptionCanceled: false
User canceled subscriptions before the end of the billing period:
- subscriptionCanceled: true (besides, the server does not perform any action until the end of the billing period)
- at the end of the billing period (canceled subscription) - membership: "basic"
PayPal:
- screenshots or a short description of the configuration (e.g. what webhook events are enabled)
- only required events enabled (no additional costs).
Additional information:
- no need to add firestore rules.
- information exchange between PayPal and cloud functions must be secured and resistant to attacks (i.e. secured against sending requests that pretend to be from PayPal)
- you know a better solution - write !!!