promptparsego

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2025 License: MIT Imports: 2 Imported by: 0

README

Promptparse Golang

Go Report Card Documentation GitHub release

"All-in-one Golang for PromptPay & EMVCo QR Codes"

That No dependency required. So here we go!

Original library from (Forked from)

maythiwat/promptparse

Insatallation

go get github.com/mrwan200/promptparse-go

Features

  • Parse — PromptPay & EMVCo QR Code data strings into object
  • Generate — QR Code data from pre-made templates (for example: PromptPay AnyID, PromptPay Bill Payment, TrueMoney, etc.)
  • Manipulate — any values from parsed QR Code data (for example: transfer amount, account number) and encodes back into QR Code data
  • Validate — checksum and data structure for known QR Code formats (for example: Slip Verify API Mini QR)

Usage

Parsing data and get value from tag
package main

import (
    "log"

    promptparse "github.com/mrwan200/promptparse-go"
)

func main() {
    parsed := promptparse.Parse("000201010212293...", true, true)
    if parsed == nil {
        log.Println("Invalid payload.")
        return
    }

    // Now get tag transfer ref
    log.Println(parsed.GetTagValue("00", "")) // Result: YYYY/MM/DD HH:mm:ss 01
}
Build QR data and append CRC tag
package main

import (
	"log"

	"github.com/mrwan200/promptparse-go/lib"
)

func main() {
	// Example data
	data := []lib.TLVTag{
		lib.Tag("00", "01"),
		lib.Tag("01", "11"),
	}

	// Set CRC Tag ID '63'
	tag, err := lib.WithCRCTag(lib.Encode(data), "63")
	if err != nil {
		log.Println("Error when create CRC tag")
        return
	}
	log.Println(tag) // Result: YYYY/MM/DD HH:mm:ss 00020101...
}
Generate PromptPay Bill Payment QR
package main

import (
	"log"

	"github.com/mrwan200/promptparse-go/generator"
)

func main() {
	log.Println(generator.BillPayment("1xxxxxxxxxxxx", 300, "INV12345", "", ""))  // Result: YYYY/MM/DD HH:mm:ss 00020101021230490016...
}
Validate & extract data from Slip Verify QR
package main

import (
	"log"

	promptparse "github.com/mrwan200/promptparse-go"
)

func main() {
	slip := promptparse.SlipVerify("0041000600.....")
	if slip == nil {
		log.Println("Invalid slip verify")
		return
	}

	log.Println(slip.SendingBank) // Result: YYYY/MM/DD HH:mm:ss 004
	log.Println(slip.TransRef) // Result: YYYY/MM/DD HH:mm:ss 0141012...
}
Validate & extract data from Truemoney Slip Verify QR
package main

import (
	"log"

	promptparse "github.com/mrwan200/promptparse-go"
)

func main() {
	slip := promptparse.TruemoneySlipVerify("0049000.....")
	if slip == nil {
		log.Println("Invalid slip verify")
		return
	}

	log.Println(slip.EventType) // Result: P2P, etc.
	log.Println(slip.TransactionID) // Result: 5000012346789
	log.Println(slip.TransferDate) // Result: 28022025 (DDMMYYYY)
}
Convert BOT Barcode to PromptPay QR Tag 30 (Bill Payment)
package main

import (
	"log"

	promptparse "github.com/mrwan200/promptparse-go"
)

func main() {
	bill := promptparse.ParseBarcode("|310109999999901\r...")
	if bill.BillerID == "" {
		log.Println("Invalid barcode.")
		return
	}

	log.Println(bill.ToQRTag30()) // Reseult: YYYY/MM/DD HH:mm:ss  00020101021....
}

References

See also

License

This project is MIT licensed (see LICENSE)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Parse

func Parse(payload string, strict bool, subTags bool) *lib.EMVCoQRStruct

Parse any EMVCo-compatible QR Code data string

func ParseBarcode

func ParseBarcode(payload string) lib.BOTBarcode

Parse barcode data string (BOT Barcode Standard)

Types

type SlipVerifyStruct

type SlipVerifyStruct struct {
	SendingBank string
	TransRef    string
}

func SlipVerify

func SlipVerify(payload string) *SlipVerifyStruct

type TruemoneySlipVerifyStruct added in v1.1.0

type TruemoneySlipVerifyStruct struct {
	EventType     string
	TransactionID string
	TransferDate  string
}

func TruemoneySlipVerify added in v1.1.0

func TruemoneySlipVerify(payload string) *TruemoneySlipVerifyStruct

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL