diff --git a/liqpay.go b/liqpay.go index cfcbbd7..23cbc74 100644 --- a/liqpay.go +++ b/liqpay.go @@ -12,11 +12,23 @@ import ( "net/url" ) -const liqpayURL = "https://www.liqpay.ua/api/" +const ( + liqpayURL = "https://www.liqpay.ua/api/" +) + +var ( + allowedLangs = []string{"uk", "ru", "en"} + buttonLabel = map[string]string{ + "uk": "Сплатити", + "en": "Pay", + "ru": "Оплатить", + } +) type formData struct { Data string Signature string + Label string } type Client struct { @@ -102,6 +114,7 @@ func (c Client) RenderForm(req Request) (string, error) { if err := t.Execute(&buf, formData{ Data: encodedJSON, Signature: signature, + Label: buttonLabel[req.getLang()], }); err != nil { return "", err } @@ -115,6 +128,19 @@ func (r Request) addMissingPubKey(key string) { r["public_key"] = key } +func (r Request) getLang() string { + lang, contains := r["language"].(string) + if contains { + for _, allowedLang := range allowedLangs { + if lang == allowedLang { + return lang + } + } + } + + return "uk" +} + func (r Request) Encode() (string, error) { obj, err := json.Marshal(r) if err != nil { diff --git a/liqpay_form.html b/liqpay_form.html index c11e1ae..b70b8af 100644 --- a/liqpay_form.html +++ b/liqpay_form.html @@ -1,5 +1,6 @@
\ No newline at end of file diff --git a/liqpay_test.go b/liqpay_test.go index 142771d..8a4b9e0 100644 --- a/liqpay_test.go +++ b/liqpay_test.go @@ -93,10 +93,11 @@ func TestClient_RenderForm(t *testing.T) { }, }, want: ``, + + + +