1.0.1 • Published 3 months ago

@sradevski/medusa-payment-halkbank-react v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

Halkbank Payment Plugin for MedusaJS

This plugin is a payment plugin for MedusaJS that allows you to accept payments from Halkbank MK. Halkbank uses Nestpay as a payment gateway, so the plugin can likely be adjusted to work with other banks that rely on Nestpay.

See Halkbank Payment Plugin for MedusaJS - Backend for the backend plugin.

Installation

Install the frontend component:

  • npm i @sradevski/medusa-payment-halkbank-react
  • yarn add @sradevski/medusa-payment-halkbank-react
  • pnpm install @sradevski/medusa-payment-halkbank-react

Import the HalkbankPayment component from the package:

import { HalkbankPayment } from "@sradevski/medusa-payment-halkbank-react"

Render the HalkbankPayment component:

<HalkbankPayment
    cart={cart}
    clientId={process.env.NEXT_PUBLIC_HALKBANK_CLIENT_ID!}
    callbackUrl={`${process.env.NEXT_PUBLIC_HALKBANK_CALLBACK_URL}/${cart.id}`}
    language="mk"
    providerId="pp_halkbank_halkbank"
    initiatePaymentSession={(data) => initiatePaymentSession(cart, data)}
    onPaymentResponse={(resp) => {
        if (resp.error) {
            setError(resp.error)
        } else {
            finalizeCompletedCart(cart)
        }
    }}
    spinner={<Spinner />}
/>

Initiating a payment session using the SDK:

export async function initiatePaymentSession(
  cart: HttpTypes.StoreCart,
  data: {
    provider_id: string
    data: Record<string, unknown>
  }
) {
  return sdk.store.payment
    .initiatePaymentSession(cart, data, {}, await getAuthHeaders())
    .then((resp) => {
      return resp
    })
    .catch(medusaError)
}

The environment variables you need to set will look like this:

NEXT_PUBLIC_HALKBANK_CLIENT_ID=1234567890 // Information you got from Halkbank
NEXT_PUBLIC_HALKBANK_CALLBACK_URL=https://your-domain.com/hooks/halkbank

Don't initiate a payment session early when using halkbank - Only render the HalkbankPayment component once the customer has selected as a payment method. Every time some of the cart data changes, a new session needs to be created, and the old one canceled.

1.0.1

3 months ago

1.0.0

3 months ago

0.0.2

3 months ago

0.0.1

3 months ago