Skip to content

mr-luke/przelewy24-js

Repository files navigation

Przelewy24 javascript driver

Package is build in Typescript with target build set to ES5.

Warning! This is still RC.

Installation

To install through npm, simply put the following lines into package.json

{
    "dependencies": {
        "@mr-luke/przelewy24": "~1.0"
    }
}

or use the following command:

npm i @mr-luke/przelewy24

Getting started

Javasrcript sample:

import createInstance from '@mr-luke/przelewy24'

const przelewy24 = createInstance({
  live: false
  merchant: 12345
  currency: 'PLN'
  country: 'PL'
  salt: 'abcdefghi'
})

przelewy24.test().then(response => {
  if (response.status == 'success') {
    console.log('Test connection succeed.')
  } else {
    console.log('Test connection failed.')
  }
})

Typescript sample:

import createInstance from '@mr-luke/przelewy24'
import { Config, PrzelewyInstance, Response } from '@mr-luke/przelewy24'

const config: Config = {
  live: false
  merchant: 12345
  currency: 'PLN'
  country: 'PL'
  salt: 'abcdefghi'
}
const przelewy24: PrzelewyInstance = createInstance(config)

przelewy24.test().then(response: Response => {
  if (response.status == 'success') {
    console.log('Test connection succeed.')
  } else {
    console.log('Test connection failed.')
  }
})

The following documentation will be written using Typescript notation to be more specify about structure requirements.

Methods

PrzelewyInstance provides 3 methods to interact with Przelewy24 payments provider. You can test connection, register new transaction or verify callback from the provider.

  • przelewy24.test(): Promise<Response>

    test your connection with Przelewy24

  • przelewy24.register(transaction: Transaction, callbacks: Callbacks): Promise<Response>

    register new transaction in Przelewy24 & return redirect transaction Url

  • przelewy24.verify(payload: Verification): Promise<Response>

    verify & confirm transaction from callback call

Przelewy driver Api

Callbacks

Object interface.

interface Config {
  returnUri: string
  statusUri: string
}

Hasher

Hasher class uses to create md5 signature.

Http

Http class uses to call przelewy24 http api.

HttpInstance

Http class interface.

interface Http {
  request(config: HttpRequest): Promise<HttpResponse>
}

HttpRequest

Object interface.

interface HttpRequest {
  url: string
  data: object
}

HttpResponse

Object interface.

interface HttpResponse {
  status: number
  success: boolean
  data?: any
}

Przelewy

Przelewy class uses to prepare & communicate with przelewy24 api.

PrzelewyInstance

Przelewy class interface.

interface Przelewy {
  live: boolean

  register(transaction: Transaction, callbacks: Callbacks): Promise<Response>
  test(): Promise<Response>
  verify(payload: Verification): Promise<Response>
}

Response

Object interface.

{
  url: 'string'
  data: 'object'
}

Transaction

Object interface.

interface Transaction {
  sessionId: string|number
  amount: number
  description: string
  email: string
  client?: string
  address?: string
  zip?: string
  city?: string
  phone?: string
  language?: string
  method?: number
  shouldWait?: number
  channel?: number
  shipping?: number
  transferLabel?: string
  items: Item[]
}

TransactionItem

Object interface

interface TransactionItem {
  name: string
  quantity: number
  price: number
  description?: string
  id?: number
}

Verification

Object interface

interface Verification {
  p24_merchant_id: string|number
  p24_pos_id: string|number
  p24_session_id: string|number
  p24_amount: number
  p24_currency: Currency
  p24_order_id: number
  p24_method: number
  p24_statement: string
  p24_sign: string
}

Version

Version class uses as a base http api configuration.

VersionInstance

Version class interface.

interface Version {
  getTarget(target: Target, isLive: boolean): string
  getVersion(): string
  getUri(isLive: boolean): string
}

Custom instance

You can create custom instance of Przelewy by following requirements from it's interface.

import { Config, Hasher, HttpInstance, Przelewy, PrzelewyInstance, VersionInstance }

const przelewy: PrzelewyInstance = new Przelewy(
  config: Config,
  http: HttpInstance,
  version: VersionInstance
  hasher: Hasher
)