Skip to main content

Tutorial: Third-Party Payment Gateway Setup

Role: Journal Manager / Site Administrator
Time: 30โ€“45 minutes
OJS Version: 3.5+

OJS supports payment collection via its built-in payment framework. Beyond PayPal, you can integrate Stripe (via the Stripe plugin) or build a custom integration.


Before You Startโ€‹

  • You have Journal Manager or Site Administrator access in OJS.
  • You have a payment gateway account (Stripe, etc.).
  • Payments are enabled in OJS Distribution settings.

Option A โ€” Stripe Payment Pluginโ€‹

Stripe is a popular payment processor with competitive fees and strong global coverage.

Step 1 โ€” Create a Stripe Accountโ€‹

  1. Go to stripe.com and create a free account.
  2. Complete business verification.
  3. Go to Developers โ†’ API keys.
  4. Copy your Publishable Key and Secret Key (use Test keys during setup).

Step 2 โ€” Install the Stripe Pluginโ€‹

  1. Log in as Site Administrator.
  2. Go to Administration โ†’ Plugin Gallery.
  3. Search for Stripe.
  4. Click Install.

Or download from github.com/pkp/stripe and upload to /plugins/paymethod/stripe/.

Step 3 โ€” Enable and Configure the Pluginโ€‹

  1. Go to Settings โ†’ Website โ†’ Plugins โ†’ Installed Plugins.
  2. Find Stripe Payment and toggle to Enabled.
  3. Click Settings:
FieldValue
Test modeEnable during setup
Publishable KeyYour Stripe publishable key
Secret KeyYour Stripe secret key
  1. Click Save.

Step 4 โ€” Enable Payments in Distribution Settingsโ€‹

  1. Go to Settings โ†’ Distribution โ†’ Payments.
  2. Toggle Payments to Enabled.
  3. Set the currency and define APC / subscription amounts.
  4. Click Save.

Step 5 โ€” Test the Paymentโ€‹

  1. Submit a test article as an author.
  2. At the payment step, enter a Stripe test card: 4242 4242 4242 4242 (any future expiry, any CVC).
  3. Confirm the payment is recorded.
  4. Check the Stripe dashboard for the test transaction.
  5. When confirmed, switch to live keys and disable test mode.

Option B โ€” Custom Payment Integrationโ€‹

If your preferred gateway is not supported by an existing plugin, a developer can build a custom OJS payment plugin:

  1. Follow the PKP Plugin Development Guide.
  2. Extend the PaymethodPlugin class in OJS.
  3. Implement the gateway's API calls in the payment processing methods.
  4. Install the plugin on your OJS server.

Contact PKP Services for custom payment plugin development.


Option C โ€” Manual Payment Collectionโ€‹

For low-volume journals, a manual workflow is an alternative:

  1. Disable automatic payment in OJS.
  2. Add payment instructions to your submission confirmation email template.
  3. Collect payments via bank transfer, PayPal invoice, or other means.
  4. Manually mark submissions as "paid" in the OJS submission record.

Troubleshootingโ€‹

ProblemSolution
Stripe plugin not foundInstall manually from the GitHub repository
Test card rejectedEnsure test mode is enabled and using Stripe test keys
Payment not recorded in OJSCheck OJS error logs; verify the webhook or callback URL is reachable
Currency not supportedCheck the gateway's supported currencies and match OJS currency setting

Next Stepsโ€‹