
Security News
MCP Community Begins Work on Official MCP Metaregistry
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
com.github.pheerathach:promptpay
Advanced tools
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.
āđāļĨāļāļĢāļēāļĢāļĩāļāđāļ§āļĒāļŠāļĢāđāļēāļ QR āļŠāļģāļŦāļĢāļąāļāļĢāļąāļāļāļģāļĢāļ°āđāļāļīāļāļāđāļ§āļĒ PromptPay āđāļāļĒāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļ
āđāļĨāļāļĢāļēāļĢāļĩāļāļĩāđāļāđāļāļāļāļēāļĢ Java āđāļ§āļāļĢāđāļāļąāļ 8 āļāļķāđāļāđāļ
// āļĢāļąāļāļāļģāļĢāļ°āļāđāļēāļ 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();
// āļĢāļąāļāļāļģāļĢāļ°āļāđāļēāļ 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();
// āļĢāļąāļāļāļģāļĢāļ°āđāļāļ Bill Payment āđāļāļīāļĄāļāļēāļĄāļāļāļ. āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ 0000000000000 + 99 (SUFFIX 2 āļŦāļĨāļąāļ)
// āļĢāļŦāļąāļŠāļāđāļēāļāļāļīāļ 1: 15123141 āļĢāļŦāļąāļŠāļāđāļēāļāļāļīāļ 2: 3654112 āļāļģāļāļ§āļāđāļāļīāļ: <āđāļŦāđāļāļđāđāļāļģāļĢāļ°āļĢāļ°āļāļļ>
ThaiQRPromptPay qr = new ThaiQRPromptPay.Builder().bot().billPayment().billerId("000000000000099").ref1("15123141").ref2("3654112").build();
<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
https://www.bot.or.th/Thai/FIPCS/Documents/FPG/2562/ThaiPDF/25620084.pdf
https://github.com/zxing/zxing
https://commons.apache.org/proper/commons-codec/
https://stackoverflow.com/questions/13209364/convert-c-crc16-to-java-crc16/13209435
FAQs
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.
We found that com.github.pheerathach:promptpay demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.
Research
Security News
Malicious npm packages posing as developer tools target macOS Cursor IDE users, stealing credentials and modifying files to gain persistent backdoor access.