While it's much easier to use Stripe - technically, you CAN implement another payment processing service with Memberstack.
Note: Stripe is adding Paypal support!
I say implement (and not integrate) because you will need to engineer the solution yourself.
Memberstack will not have a direct connection to your payment processor in the same way that we have a connection to Stripe. That means we have zero context of your plans, products, and purchases and consequently, cannot synchronize with or manage that data on our side.
That being said, you can "map" your processor's products and subscriptions to "free plans" on our platform. From there, you can take advantage of our authentication features - like setting permissions, managing access, and more.
Here are some things you may want to consider/explore on the technical side.
You'll most likely need:
- A database or persistent store to keep the context of the processor -> Memberstack plan relationships.
- Webhooks or some type of notification system in your processor to keep track of customers' subscription status.
- Our admin library (where you can programmatically create a member, and their credentials and attach them to a free plan) - perhaps invoke this API after you've captured a successful payment on the processor side. Then, use a transactional email system like Sendgrid to securely send the user their credentials along with a link to the sign-in page on your platform.
- Our DOM library, where you can update/remove members' plans - which in turn changes their permissions and what they can access in your app. This is a hacky solution since you can't update/remove plans on the admin API yet. But you can use the admin API to update a users metadata - perhaps something like:
status: active | canceled | etc,
paypalProduct[or plan]Id: string,
You could then run plan management methods on the DOM side based on the values of
status and the plan/product ID.
If the status is canceled, maybe the UI prompts for an upgrade with the processor payment solution. You'll need to strategize how you want to handle the UX of that.
This is all assuming you're using recurring subscriptions. If you're only using one-time purchases, you can skip the webhooks and subscription status tracking/reconciliation bit. But you'll still need to use "free plans" in Memberstack that are associated with the external service’s product/plan IDs.