@rsc-labs/medusa-square-payment v0.0.3
Medusa Square Payment
What is it?
Medusa Square Payment is a basic integration of payment provider for Square Payment.
Installation
- Install plugin by adding to your
package.json:
Warning
...
"@rsc-labs/medusa-square-payment": "0.0.1" // or other available version
...and execute install, e.g. yarn install.
- Add plugin to your
medusa-config.js(Note - please notice that you need to add it to payment plugin):
...
plugins: [
{
resolve: "@rsc-labs/medusa-square-payment",
options: {
token: <app-token>,
environment: <env-definition>,
},
}
],
modules: [
{
resolve: "@medusajs/medusa/payment",
options: {
providers: [
{
resolve: "@rsc-labs/medusa-square-payment/providers/square-payment",
id: "square-payment",
options: {
token: <app-token>,
environment: <env-definition>,
},
}
]
},
},
...Overview
The basic implementation of Square payment provider gives the possibility to make a payment in your storefront.
Configuration
Plugin uses 1 required parameter and 1 optional:
token- required parameter which you can find in your Square Developer Dashboardenvironment- optional parameter - it can be set tosandbox,productionor not set at all. You can use it to test with yoursandboxenvironment.
After above configuration, you can then add the payment provider to your reqion.
Storefront
We recommend using react-square-web-payments-sdk package on your storefront as it simplifies the implementation a lot.
Here is the example of using credit card as payment:
import { PaymentForm, CreditCard as SquareCreditCard } from 'react-square-web-payments-sdk';
...
const handleSquareSubmit = async (token: string) => {
setIsLoading(true)
try {
if (!activeSession) {
await initiatePaymentSession(cart,
{
provider_id: selectedPaymentMethod,
data: {
cartId: cart?.id,
token: token
}
})
}
return router.push(
pathname + "?" + createQueryString("step", "review"),
{
scroll: false,
}
)
} catch (err: any) {
setError(err.message)
} finally {
setIsLoading(false)
}
}
{isSquare(selectedPaymentMethod) &&
<div>
<PaymentForm
applicationId="<application-id>"
cardTokenizeResponseReceived={(token, verifiedBuyer) => {
handleSquareSubmit(token.token!);
}}
locationId='XXXXXXXXXX'
>
<SquareCreditCard/>
</PaymentForm>
</div>
}<application-id> - you can retrieve it from your Square Developer Dashboard.
Limitations
Plugin does not support refunds and cancels. It has been tested using only credit card - when authorized, it captures money automatically.
License
MIT
© 2025 RSC https://rsoftcon.com/