Package is build in Typescript with target build set to ES5.
Warning! This is still RC.
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
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.
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
Object interface.
interface Config {
returnUri: string
statusUri: string
}
Hasher class uses to create md5 signature
.
Http class uses to call przelewy24 http api.
Http class interface.
interface Http {
request(config: HttpRequest): Promise<HttpResponse>
}
Object interface.
interface HttpRequest {
url: string
data: object
}
Object interface.
interface HttpResponse {
status: number
success: boolean
data?: any
}
Przelewy class uses to prepare & communicate with przelewy24 api.
Przelewy class interface.
interface Przelewy {
live: boolean
register(transaction: Transaction, callbacks: Callbacks): Promise<Response>
test(): Promise<Response>
verify(payload: Verification): Promise<Response>
}
Object interface.
{
url: 'string'
data: 'object'
}
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[]
}
Object interface
interface TransactionItem {
name: string
quantity: number
price: number
description?: string
id?: number
}
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 class uses as a base http api configuration.
Version class interface.
interface Version {
getTarget(target: Target, isLive: boolean): string
getVersion(): string
getUri(isLive: boolean): string
}
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
)