Tinkoff Payments Provider
yarn add @atlantis-lab/tinkoff-api
Initialize purchase example
import { Tinkoff } from '@atlantis-lab/tinkoff-api'
const tinkoff = new Tinkoff ( {
password : process . env . TINKOFF_PASSWORD ,
terminalKey : process . env . TINKOFF_TERMINAL_KEY ,
} )
const response = await tinkoff . api . payments . Init ( {
OrderId : 1 ,
Amount : 2000 ,
} )
// ..logic
Tinkoff request verifing example
import http from 'http'
import { Tinkoff } from '@atlantis-lab/tinkoff-api'
const tinkoff = new Tinkoff ( {
password : process . env . TINKOFF_PASSWORD ,
terminalKey : process . env . TINKOFF_TERMINAL_KEY ,
} )
const downloadJSONBody = async ( request : http . IncomingMessage ) => {
const chunks : Buffer [ ] = [ ]
for await ( const chunk of request ) {
chunks . push ( chunk )
}
const rawBody = Buffer . concat ( chunks )
const serializedBody = rawBody . toJSON ( )
return serializedBody
}
const rejectRequest = ( response : http . ServerResponse ) => {
response . statusCode = 400
response . end ( )
}
const resolveRequest = ( response : http . ServerResponse ) => {
response . statusCode = 200
response . end ( 'OK' )
}
const requestHandler : http . RequestListener = ( request , response ) => {
const body = await downloadJSONBody ( request )
const verified = tinkoff . security . verifyRequest ( body )
verified ? resolveRequest ( response ) : rejectRequest ( response )
}
const server = http . createServer ( requestHandler )
server . listen ( process . env . APPLICATION_PORT )