Updating status on the server (paypal, firebase)

Closed job
no avatar
zlecenia_michala
Employer
Job category:
Desktop/web applications
Expected budget:

Negotiable

Published:
Finished

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 !!!

Required functions:

Submitted offers 1

Add your offer or ask the client for more details