forked from xendit/xendit-go
/
main.go
73 lines (60 loc) · 1.7 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package main
import (
"fmt"
"log"
"os"
"time"
"github.com/ianeinser/xendit-go"
"github.com/ianeinser/xendit-go/virtualaccount"
"github.com/joho/godotenv"
)
func main() {
godotenvErr := godotenv.Load()
if godotenvErr != nil {
log.Fatal(godotenvErr)
}
xendit.Opt.SecretKey = os.Getenv("SECRET_KEY")
availableBanks, err := virtualaccount.GetAvailableBanks()
if err != nil {
log.Fatal(err)
}
fmt.Printf("available va banks: %+v\n", availableBanks)
createFixedVAData := virtualaccount.CreateFixedVAParams{
ExternalID: "va-" + time.Now().String(),
BankCode: availableBanks[0].Code,
Name: "Michael Jackson",
}
resp, err := virtualaccount.CreateFixedVA(&createFixedVAData)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created fixed va: %+v\n", resp)
getFixedVAData := virtualaccount.GetFixedVAParams{
ID: resp.ID,
}
resp, err = virtualaccount.GetFixedVA(&getFixedVAData)
if err != nil {
log.Fatal(err)
}
fmt.Printf("retrieved fixed va: %+v\n", resp)
expirationDate := time.Now().AddDate(0, 0, 1)
updateFixedVAData := virtualaccount.UpdateFixedVAParams{
ID: resp.ID,
ExpirationDate: &expirationDate,
}
resp, err = virtualaccount.UpdateFixedVA(&updateFixedVAData)
if err != nil {
log.Fatal(err)
}
fmt.Printf("updated fixed va: %+v\n", resp)
// Before running this example, create a fixed virtual account payment simulation
// by making a POST request to
// https://api.xendit.co/callback_virtual_accounts/external_id=<FVA external ID>/simulate_payment
payment, err := virtualaccount.GetPayment(&virtualaccount.GetPaymentParams{
PaymentID: "VA_fixed-1580285972",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("retrieved va payment: %+v\n", payment)
}