Javascript library to parse EMV QR codes. This project intend to help in your work with the EMV specification for digital payments.
npm install -S emvqr
const emvqr = require('emvqr');
This is out of the scope of this library. For example, you could use a QR scanner lib in your front end and send the result to your backend. Or if you need test your functionallity, just use a dummy string, like in our example.
const example = '00020101021229300012D156000000000510A93FO3230Q31280012D15600000001030812345678520441115802CN5914BEST TRANSPORT6007BEIJING64200002ZH0104最佳运输0202北京540523.7253031565502016233030412340603***0708A60086670902ME91320016A0112233449988770708123456786304A13A';
const result = emvqr.decode(example);
cconsole.log(result);
Result:
{
'29': {
id: '29',
name: 'Merchant Account Information',
len: 30,
data: { '00': [Object], '05': [Object] }
},
'31': {
id: '31',
name: 'Merchant Account Information',
len: 28,
data: { '00': [Object], '03': [Object] }
},
'52': {
id: '52',
name: 'Merchant Category Code',
len: 4,
data: '4111 (Local/Suburban Commuter Passenger Transportation – Railroads, Feries, Local Water Transportation.)'
},
'53': { id: '53', name: 'Transaction Currency', len: 3, data: '156 (CNY)' },
'54': { id: '54', name: 'Transaction Amount', len: 5, data: '23.72' },
'55': {
id: '55',
name: 'Tip or Convenience Indicator',
len: 2,
data: '01'
},
'58': { id: '58', name: 'Country Code', len: 2, data: 'CN (China)' },
'59': { id: '59', name: 'Merchant Name', len: 14, data: 'BEST TRANSPORT' },
'60': { id: '60', name: 'Merchant City', len: 7, data: 'BEIJING' },
'62': {
id: '62',
name: 'Additional Data Field Template',
len: 33,
data: { '03': [Object], '06': [Object], '07': [Object], '09': [Object] }
},
'63': { id: '63', name: 'CRC', len: 4, data: 'A13A' },
'64': {
id: '64',
name: 'Merchant Information— Language Template',
len: 20,
data: '0002ZH0104最佳运输0202北京'
},
'91': {
id: '91',
name: 'Unreserved Templates',
len: 32,
data: '0016A011223344998877070812345678'
},
'00': { id: '00', name: 'Payload Format Indicator', len: 2, data: '01' },
'01': { id: '01', name: 'Point of Initiation Method', len: 2, data: '12' }
}