BinKing is ready

BinKing is a tool for creating royal forms of accepting bank cards. BinKing allows you to get the bank logo, colors, phone number, brand logo and more by card number. BinKing also helps in the validation of such forms. Use BinKing to create a smart and responsive card acceptance form. Increase conversion, increase user loyalty, reduce the workload of the support department.





API ( , ) . BinKing. .



JSFiddle. . , , , . , . .



API (, + ), , , (Visa, MasterCard, ..) 6 . BinKing , , UX (, , ) .



. . : , , . . , . , , .



, , . ? 7 7 ( , , ) — 200 000 ₽. 200 000 ₽ . , 200 000 ₽.



BinKing , ., . , BinKing . . .





, BinKing -. , .



BinKing . API , .





, API . Node.js express. API API, .



const express = require('express')
const fs = require('fs')
const path = require('path')

const app = express()
const banks = fs.fileReadSync(path.resolve(__dirname, 'path/to/data/banks-all.json'))
const bins = fs.fileReadSync(path.resolve(__dirname, 'path/to/data/bins-all.json'))

const withLogos = bank => {
  return {
    ...bank,
    bankLogoBigOriginalSvg: bank.bankAlias + '-big-original.svg',
    bankLogoBigInvertedSvg: bank.bankAlias + '-big-inverted.svg',
    bankLogoSmallOriginalSvg: bank.bankAlias + '-small-original.svg',
    bankLogoSmallInvertedSvg: bank.bankAlias + '-small-inverted.svg',
    formBankLogoBigSvg: bank.bankAlias + '-big-' + bank.formLogoScheme + '.svg',
    formBankLogoSmallSvg: bank.bankAlias + '-small-' + bank.formLogoScheme + '.svg',
  }
}

app.get('/form', (req, res) => {
  const { cardNumber } = req.query
  const cardNumberCuted = cardNumber.replace(/D/g, '').substr(0, 6)
  const bankAlias = bins[cardNumberCuted]
  const bank = banks[bankAlias]
  if (!bank) return res.send('null')
  res.send(withLogos(bank))
})

app.get('/bank', (req, res) => {
  const { bankAlias } = req.query
  const bank = banks[bankAlias]
  if (!bank) return res.send('null')
  res.send(withLogos(bank))
})

app.get('/banks', (req, res) => {
  const { banksAliases } = req.query
  const result = banksAliases.split(',').map(bankAlias => {
    const bank = banks[bankAlias]
    return bank ? withLogos(bank) : null
  })
  res.send(result)
})




-. habr.com/users/iserdmi/posts. . IT-, . , , , .



. , .: , , . , ( , , , ), , : , . , . 2 , , . , : 1 , . ., .



. , . , , . . , .



- , , github.com/iserdmi/card-info/blob/master/README.ru.md, , , habr.com/post/324738 , .



? - . , , , KPI, , , , , . .



. , . . , API, , . , , API. , , , , .



? . , . , , .



CardInfo?



CardInfo — . . , .



Where can I get the archive?



I have. Now I will give it cheap, it will be more expensive as I finish it.




All Articles