/payment-server-template

Payment Server Template is a generic open-source payment server that has a simple yet powerful design to connect your business with third-party payment solution provider companies (like Stripe or Coinbase).

Primary LanguageTypeScriptMIT LicenseMIT

Logo

Open Template Hub - Payment Server Template v5

License Issues PRCLosed LastCommit Release SonarCloud

Payment Server Template is a generic open-source payment server that has a simple yet powerful design to connect your business with third-party payment solution provider companies (like Stripe or Coinbase).

Ways to Begin

1. Express Deploy

Deploy this template to Heroku

Deploy

2. Start with Server Generator

Create your server with Server Generator Package

NPM

3. GitHub Template

Use this repository as a Template

GitHubTemplate

Installations

Install nodejs and npm via nodejs.org.

Check installed versions of nodejs and npm via running following commands:

node -v
npm -v

Check project's current nodejs and npm version from package.json.

Environment Variables

If you don't give RESPONSE_ENCRYPTION_SECRET, response encryption mechanism will be disabled automatically.

PORT=4003

PROJECT=OTH
MODULE=PaymentServer
ENVIRONMENT=Local

MONGODB_URI={Database Connection Url}
MONGODB_CONNECTION_LIMIT={MongoDB Connection Limit}

DATABASE_URL={Database Connection Url}
POSTGRESQL_CONNECTION_LIMIT={Postgresql Connection Limit}

CLOUDAMQP_APIKEY={MQ Api Key}
CLOUDAMQP_URL={MQ Connection Url}

PAYMENT_SERVER_QUEUE_CHANNEL=oth_payment_queue
ORCHESTRATION_SERVER_QUEUE_CHANNEL=oth_orchestration_queue

REDISCLOUD_URL={Redis Connection Url}
REDIS_CONNECTION_LIMIT={Redis Connection Limit}

ACCESS_TOKEN_SECRET={Access Token Secret}
RESPONSE_ENCRYPTION_SECRET={Response Encryption Secret}

Example Product:

    {
  "product_id": "0276d8d1-0945-412b-92d1-084a6e3f7554",
  "name": "Premium",
  "description": "full access to premium features!",
  "payload": {
    "stripe": {
      "amount": 1999,
      "currency": "usd"
    },
    "coinbase": {
      "amount": 19.99,
      "currency": "usd"
    },
    "paypal": {
      "amount": 19.99,
      "currency": "usd"
    }
  }
}

Payment Configurations

Stripe Payment Config:

  {
  "key": "STRIPE",
  "payload": {
    "method": "stripe",
    "secret": "{Your Payment Secret on Stripe}",
    "payment_method_types": [
      "card"
    ],
    "mode": "payment",
    "success_url": "https://localhost:4000/success?session_id={CHECKOUT_SESSION_ID}",
    "cancel_url": "https://localhost:4000/cancel"
  }
}

Coinbase Payment Config:

    {
        "key" : "COINBASE",
        "payload" : {
            "method" : "coinbase",
            "secret" : "{Your Payment Secret on Coinbase}",
            "charge_url" : "https://api.commerce.coinbase.com/charges",
            "success_url" : "https://localhost:4000/success",
            "cancel_url" : "https://localhost:4000/cancel"
        }
    }

PayPal Payment Config:

    {
        "key" : "PAYPAL",
        "payload" : {
            "method" : "paypal",
            "env" : "sandbox",
            "secret" : "{Your Payment Secret on PayPal}",
            "client_id" : "{Your Client Id on PayPal}",
            "success_url" : "https://oth-ui-web-dev.herokuapp.com/success",
            "cancel_url" : "https://oth-ui-web-dev.herokuapp.com/cancel"
        }
    }

Http Requests

You can find list of available http request in the requests directory. You can run http requests directly via WebStorm, for more information check out: jetbrains.com/help/idea/http-client-in-product-code-editor.html

Contributors


Furkan Yavuz

💬 📖 👀

Fatih Turker

💬 📖 👀

Mert Sarac

💬 📖 👀

Contributing

Refer to CONTRIBUTING.md to see how to contribute to Open Template Hub.


Code of Conduct

Refer to CODE_OF_CONDUCT.md to see contributor covenant code of conduct.


LICENSE

The source code for this project is released under the MIT License.