thai-bank-transfer-qr 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -7
- package/index.js +2 -12
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Minimal, dependency-free Thai bank transfer QR payload builder (PromptPay / Tag 29 + CRC16-CCITT).
|
|
4
4
|
|
|
5
|
-
- No merchant name or city tags (59/60) included.
|
|
6
|
-
- Privacy: never publish real bank account numbers.
|
|
7
|
-
|
|
8
5
|
## Install
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
```bash
|
|
8
|
+
npm install thai-bank-transfer-qr
|
|
9
|
+
```
|
|
11
10
|
|
|
12
11
|
## Usage
|
|
13
12
|
|
|
@@ -18,7 +17,6 @@ const payload = buildThaiQRBankTransfer({
|
|
|
18
17
|
bankCode: "004", // example only
|
|
19
18
|
accountNumber: "1234567890", // example only
|
|
20
19
|
amount: 10,
|
|
21
|
-
dynamic: false, // 11 static, 12 dynamic
|
|
22
20
|
})
|
|
23
21
|
|
|
24
22
|
console.log(payload)
|
|
@@ -30,8 +28,6 @@ console.log(payload)
|
|
|
30
28
|
- bankCode: string (3 digits)
|
|
31
29
|
- accountNumber: string (digits only)
|
|
32
30
|
- amount: number|string (formatted to 2 decimals)
|
|
33
|
-
- dynamic?: boolean (default true)
|
|
34
|
-
- referenceId?: string (Tag 62 >> 05)
|
|
35
31
|
|
|
36
32
|
Also exports: `tlv`, `crc16CCITT`.
|
|
37
33
|
|
package/index.js
CHANGED
|
@@ -41,13 +41,7 @@ export function crc16CCITT(input) {
|
|
|
41
41
|
* @param {string} [options.referenceId]
|
|
42
42
|
* @returns {string}
|
|
43
43
|
*/
|
|
44
|
-
export function buildThaiQRBankTransfer({
|
|
45
|
-
bankCode,
|
|
46
|
-
accountNumber,
|
|
47
|
-
amount,
|
|
48
|
-
dynamic = true,
|
|
49
|
-
referenceId,
|
|
50
|
-
}) {
|
|
44
|
+
export function buildThaiQRBankTransfer({ bankCode, accountNumber, amount }) {
|
|
51
45
|
if (!/^\d{3}$/.test(bankCode))
|
|
52
46
|
throw new Error("bankCode must be 3 digits (e.g. 004)");
|
|
53
47
|
if (!/^\d+$/.test(accountNumber))
|
|
@@ -64,18 +58,14 @@ export function buildThaiQRBankTransfer({
|
|
|
64
58
|
tlv("00", "A000000677010111") + tlv("03", `${bankCode}${accountNumber}`)
|
|
65
59
|
);
|
|
66
60
|
|
|
67
|
-
// Optional Tag 62 → 05=Reference ID
|
|
68
|
-
const tag62 = referenceId ? tlv("62", tlv("05", referenceId)) : "";
|
|
69
|
-
|
|
70
61
|
const withoutCRC =
|
|
71
62
|
tlv("00", "01") +
|
|
72
|
-
tlv("01",
|
|
63
|
+
tlv("01", "11") +
|
|
73
64
|
tag29 +
|
|
74
65
|
tlv("52", "0000") +
|
|
75
66
|
tlv("53", "764") +
|
|
76
67
|
tlv("54", amt) +
|
|
77
68
|
tlv("58", "TH") +
|
|
78
|
-
tag62 +
|
|
79
69
|
"6304";
|
|
80
70
|
|
|
81
71
|
const crc = crc16CCITT(withoutCRC);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thai-bank-transfer-qr",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Thai bank transfer QR payload builder (PromptPay – Tag 29 + CRC16)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"author": "thunthup",
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
|
-
"url": "https://github.com/thunthup/thai-bank-qr.git"
|
|
22
|
+
"url": "git+https://github.com/thunthup/thai-bank-qr.git"
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/thunthup/thai-bank-qr#readme",
|
|
25
25
|
"bugs": {
|