🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

com.github.pheerathach:promptpay

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

com.github.pheerathach:promptpay

As Bank of Thailand (BOT) initialized the PromptPay project enabling Thai people to make a payment via its platform through QR code with the content in EMVCo format, this Java library would help generating QR or QR's content for people or businesses in order to receive or make a payment.

1.0.2
Source
Maven
Version published
Maintainers
1
Source

Thai QR PromptPay Generator

āđ„āļĨāļšāļĢāļēāļĢāļĩāļŠāđˆāļ§āļĒāļŠāļĢāđ‰āļēāļ‡ QR āļŠāļģāļŦāļĢāļąāļšāļĢāļąāļšāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļ”āđ‰āļ§āļĒ PromptPay āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡

  • QR āļŠāļģāļŦāļĢāļąāļšāļšāļļāļ„āļ„āļĨāļ˜āļĢāļĢāļĄāļ”āļēāļĢāļąāļšāđ‚āļ­āļ™āđ€āļ‡āļīāļ™ (Credit Transfer)
  • QR āļŠāļģāļŦāļĢāļąāļšāļ˜āļļāļĢāļāļīāļˆāļĢāļąāļšāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™ (Bill Payment)

āđ„āļĨāļšāļĢāļēāļĢāļĩāļ™āļĩāđ‰āļ•āđ‰āļ­āļ‡āļāļēāļĢ Java āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 8 āļ‚āļķāđ‰āļ™āđ„āļ›

āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™

  • QR āļŠāļģāļŦāļĢāļąāļšāļšāļļāļ„āļ„āļĨāļ˜āļĢāļĢāļĄāļ”āļēāļĢāļąāļšāđ‚āļ­āļ™āđ€āļ‡āļīāļ™ (Credit Transfer) Tag 29
// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļšāļ­āļĢāđŒ 081-234-5678 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: <āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļģāļĢāļ°āļĢāļ°āļšāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().mobileNumber("0812345678").build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ›āļĢāļ°āļŠāļēāļŠāļ™ 0-0000-00000-00-0 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: <āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļģāļĢāļ°āļĢāļ°āļšāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().nationalId("0000000000000").build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay E-Wallet ID 000000000000000 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: <āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļģāļĢāļ°āļĢāļ°āļšāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().eWalletId("000000000000000").build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļšāļ­āļĢāđŒ 081-234-5678 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 10 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().mobileNumber("0812345678").amount(new BigDecimal("10.00")).build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ›āļĢāļ°āļŠāļēāļŠāļ™ 0-0000-00000-00-0 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 136.25 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().nationalId("0000000000000").amount(new BigDecimal("136.25")).build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay E-Wallet ID 000000000000000 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 0.01 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().staticQR().creditTransfer().eWalletId("000000000000000").amount(new BigDecimal("0.01")).build();
  • QR āļŠāļģāļŦāļĢāļąāļšāļ˜āļļāļĢāļāļīāļˆāļĢāļąāļšāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™ (Bill Payment) Tag 30
// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 1: 15123141 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 2: 3654112 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: <āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļģāļĢāļ°āļĢāļ°āļšāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().dynamicQR().billPayment().billerId("000000000000099").ref1("15123141").ref2("3654112").build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 1: 15123141 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 2: 3654112 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 200.00 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().dynamicQR().billPayment().billerId("000000000000099").ref1("15123141").ref2("3654112").amount(new BigDecimal("200.00")).build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 1: 15123141 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 2: 3654112 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 3: ABCD āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 200.00 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().dynamicQR().billPayment().billerId("000000000000099").ref1("15123141").ref2("3654112").ref3("ABCD").amount(new BigDecimal("200.00")).build();

// āļĢāļąāļšāļŠāļģāļĢāļ°āļœāđˆāļēāļ™ PromptPay āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 1: 15123141 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 3: ABCD āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: 100.00 āļšāļēāļ—
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().dynamicQR().billPayment().billerId("000000000000099").ref1("15123141").ref3("ABCD").amount(new BigDecimal("100.00")).build();

  • QR āļŠāļģāļŦāļĢāļąāļšāļ˜āļļāļĢāļāļīāļˆāļĢāļąāļšāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™ (Bill Payment) āļ•āļēāļĄāļĄāļēāļ•āļĢāļāļēāļ™āđ€āļ”āļīāļĄāļ‚āļ­āļ‡āļ˜āļ›āļ—.
// āļĢāļąāļšāļŠāļģāļĢāļ°āđāļšāļš Bill Payment āđ€āļ”āļīāļĄāļ•āļēāļĄāļ˜āļ›āļ—. āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 1: 15123141 āļĢāļŦāļąāļŠāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ 2: 3654112 āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™: <āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļģāļĢāļ°āļĢāļ°āļšāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().bot().billPayment().billerId("000000000000099").ref1("15123141").ref2("3654112").build();

āļ‚āđ‰āļ­āļžāļķāļ‡āļŠāļąāļ‡āđ€āļāļ•

  • QR āļ—āļĩāđˆāļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđƒāļŠāđ‰āđ„āļ”āđ‰āļŦāļĨāļēāļĒāļ„āļĢāļąāđ‰āļ‡ āļ„āļ·āļ­ staticQR()
  • QR āļ—āļĩāđˆāļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđƒāļŠāđ‰āđ„āļ”āđ‰āđāļ„āđˆāļ„āļĢāļąāđ‰āļ‡āđ€āļ”āļĩāļĒāļ§ āļ„āļ·āļ­ dynamicQR()

āļ§āļīāļ˜āļĩāļ™āļģāđ„āļ›āđƒāļŠāđ‰

  • āļ™āļģāđ€āļ‚āđ‰āļēāđ„āļĨāļšāļĢāļēāļĢāļĩāļœāđˆāļēāļ™ Maven āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄāđ‚āļ„āđ‰āļ”āļ”āļąāļ‡āļāļĨāđˆāļēāļ§āđƒāļ™ pom.xml
<dependencies>
...
		<dependency>
			<groupId>com.github.pheerathach</groupId>
			<artifactId>promptpay</artifactId>
			<version>1.0.1</version>
		</dependency>
</dependencies>
  • āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđ„āļĨāļšāļĢāļēāļĢāļĩ
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().dynamicQR().creditTransfer().mobileNumber("0812345678").amount(new BigDecimal("100.00")).build();

2.1. āļŦāļēāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ™āļ·āđ‰āļ­āļŦāļēāļŠāļģāļŦāļĢāļąāļšāļ™āļģāđ„āļ›āļŠāļĢāđ‰āļēāļ‡āļĢāļđāļ› QR

String content = qr.generateContent();

2.2. āļŦāļēāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŦāđ‰āđ„āļĨāļšāļĢāļēāļĢāļĩāļŠāļĢāđ‰āļēāļ‡āļĢāļđāļ› QR āđƒāļŦāđ‰

2.2.1. āđ€āļ›āđ‡āļ™āđ„āļŸāļĨāđŒ PNG

qr.draw(300, 300, new File("D:\\qr.png")); // width 300 x height 300 pixels | save to D:\qr.png

2.2.2. āđ€āļ›āđ‡āļ™ Base64 String (PNG)

qr.drawToBase64(300, 300); // width 300 x height 300 pixels

2.2.3. āđ€āļ›āđ‡āļ™ byte[]

qr.drawToByteArray(400, 400); // width 400 x height 400 pixels

āđ€āļ­āļāļŠāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡

  • āļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāļĢāļąāļšāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļ”āđ‰āļ§āļĒ QR āļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢāđāļŦāđˆāļ‡āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒ

https://www.bot.or.th/Thai/FIPCS/Documents/FPG/2562/ThaiPDF/25620084.pdf

  • ZXing 3.4.0

https://github.com/zxing/zxing

  • Apache Commons Codec 1.12

https://commons.apache.org/proper/commons-codec/

  • āļ‚āļ­āļ‚āļ­āļšāļ„āļļāļ“ āļ„āļļāļ“ thedayofcondor āļŠāļģāļŦāļĢāļąāļš method āđƒāļ™āļāļēāļĢāļŦāļē CRC16

https://stackoverflow.com/questions/13209364/convert-c-crc16-to-java-crc16/13209435

FAQs

Package last updated on 15 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts