Medusa won the Golden Kitty Award for Best Ecommerce Product ✨  Learn More

Medusa Logo
  • Developers
  • Blog
  • Pricing
  • Community
  • About
  • Careers
  • Get Started
  • Developers
  • Blog
  • Pricing
  • Community
  • About
  • Careers
  • Get Started
Browse

Built by

a11rew

Category

Payment

Version

1.0.1

Last updated

Oct 22, 2022, 22:15:14 PM5 months ago
View sourceView on NPMCopy link

Medusa plugin to add support for payments with Paystack

Overview

Paystack allows Nigerian, Ghanaian, and South African businesses to accept secure payments from multiple local and global payment channels. Let your customers pay you with their choice of methods by integrating Paystack with your Medusa website.

Using the medusa-payment-paystack plugin, this guide shows you how to set up your Medusa server with Paystack as a payment provider.

Prerequisites

To begin this guide, you will need to create a Paystack account. By doing this, you will be able to obtain the Paystack account's secret key from the dashboard. The plugin uses this to verify purchases, issue refunds, and connect Medusa to Paystack.

Additionally, you need a Medusa server installed and set up. If not, you can follow the quickstart guide to get started.

You also need Medusa Admin installed to enable Paystack as a payment provider. You can alternatively use the REST APIs.

Medusa Server

This section guides you over the steps necessary to add Paystack as a payment provider to your Medusa server.

If you don’t have a Medusa server installed yet, you must follow the quickstart guide first.

Install the Paystack Plugin

In the root of your Medusa server, run the following command to install the Paystack plugin:

yarn add medusa-payment-paystack

Configure the Paystack Plugin

Next, you need to add configurations for your paystack plugin.

In medusa-config.js add the following at the end of the plugins array:

const plugins = [
// other plugins
{
resolve: `medusa-payment-paystack`,
options: {
secret_key: "<PAYSTACK_SECRET_KEY>",
},
},
];

It's that simple to install Paystack on your Medusa server!

Admin Setup

This section will guide you through adding Paystack as a payment provider in a region using your Medusa admin dashboard.

This step is required for you to be able to use Paystack as a payment provider in your storefront.

Admin Prerequisites

If you don’t have a Medusa admin installed, make sure to follow along with the guide on how to install it before continuing with this section.

Add Paystack to Regions

You can refer to this documentation in the user guide to learn how to add a payment provider like Paystack to a region.

Storefront Setup

Follow Medusa's Checkout Flow guide using paystack as the provider_id to add Paystack to your checkout flow.

medusa-payment-paystack returns a transaction reference you should send to Paystack as the transaction's reference.

Using this returned reference as the Paystack transaction's reference allows the plugin to confirm the status of the transaction, verify that the paid amount and currency are correct before authorizing the payment.

Using Transaction Reference

medusa-payment-paystack inserts a paystackTxRef into the PaymentSession's data.

const { paystackTxRef } = paymentSession.data

Provide this reference when initiating any of the Paystack Accept Payment flows.

For example, when using the Paystack Popup, provide this reference to the initialization method;

const paymentForm = document.getElementById('paymentForm');
paymentForm.addEventListener("submit", payWithPaystack, false);
function payWithPaystack(e) {
e.preventDefault();
let handler = PaystackPop.setup({
key: 'pk_test_xxxxxxxxxx',
email: document.getElementById("email-address").value,
amount: document.getElementById("amount").value * 100,
ref: paystackTxRef // Reference returned from plugin
onClose: function(){
alert('Window closed.');
},
callback: function(response){
// Call Medusa checkout complete here
}
});
handler.openIframe();
}

Verify Payment

Call the Medusa Complete Cart method in the payment completion callback of your chosen flow.

medusa-payment-paystack will check the status of the transaction with the reference it provided you, verify the amount matches the cart total and mark the cart as paid for in Medusa.

Refund Payments

You can refund captured payments made with Paystack from the Admin dashboard.

medusa-payment-paystack handles refunding the given amount using Paystack and marks the order in Medusa as refunded.

altText of the image

Build your own plugins

Take Medusa up another level, and develop your own plugins with our API to speed up your processes.

Focus on building plugins for tools you use in your daily workflow, and publish to the Medusa Plugin Store for others to install.

Read more
altText of the image
Medusa

Product

Medusa for B2BIntegrationsGet StartedCareers
We're hiring

Developers

DocsAPI ReferencesCommunityDiscussions

Medusa

BlogPricingAboutContact Us

Newsletter

Get a summary of what we’ve shipped during the last month, behind the scenes updates, and team picks. Unsubscribe any time.

© 2023 MedusaJS, Inc.