BinKing ist fertig

BinKing ist ein Tool zum Erstellen königlicher Formen der Annahme von Bankkarten. Mit BinKing können Sie das Banklogo, die Farben, die Telefonnummer, das Markenlogo und mehr anhand der Kartennummer abrufen. BinKing hilft auch bei der Validierung solcher Formulare. Verwenden Sie BinKing, um ein intelligentes und reaktionsschnelles Formular für die Annahme von Bankkarten zu erstellen. Steigern Sie die Conversion, erhöhen Sie die Benutzerbindung und reduzieren Sie die Arbeitsbelastung der Supportabteilung.





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 — . . , .



Wo kann ich das Archiv bekommen?



Bei mir. Jetzt werde ich es billig geben, es wird teurer, wenn ich es fertig habe.




All Articles