diff --git a/package.json b/package.json index f407d1f..be525bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xtr-dev/payload-billing", - "version": "0.1.24", + "version": "0.1.25", "description": "PayloadCMS plugin for billing and payment provider integrations with tracking and local testing", "license": "MIT", "type": "module", diff --git a/src/providers/mollie.ts b/src/providers/mollie.ts index 43073bf..b03b1cc 100644 --- a/src/providers/mollie.ts +++ b/src/providers/mollie.ts @@ -17,6 +17,13 @@ import { createContextLogger } from '../utils/logger' const symbol = Symbol.for('@xtr-dev/payload-billing/mollie') export type MollieProviderConfig = Parameters[0] +/** + * Determine the Mollie mode based on API key prefix + */ +function getMollieMode(apiKey: string): 'test' | 'live' { + return apiKey.startsWith('test_') ? 'test' : 'live' +} + /** * Type-safe mapping of Mollie payment status to internal status */ @@ -161,6 +168,9 @@ export const mollieProvider = (mollieConfig: MollieProviderConfig & { validateProductionUrl(redirectUrl, 'Redirect') validateProductionUrl(webhookUrl, 'Webhook') + // Determine mode from API key (test_ or live_) + const mode = getMollieMode(mollieConfig.apiKey) + const molliePayment = await singleton.get(payload).payments.create({ amount: { value: formatAmountForProvider(payment.amount, payment.currency), @@ -169,7 +179,8 @@ export const mollieProvider = (mollieConfig: MollieProviderConfig & { description: payment.description || '', redirectUrl, webhookUrl, - }); + mode, + } as any); payment.providerId = molliePayment.id // Use toPlainObject if available, otherwise spread the object (for compatibility with different Mollie client versions) payment.providerData = typeof molliePayment.toPlainObject === 'function'