Skip to main content

Subscriptions

Code samples to generate Signature hash while creating Price and Subscription

Regular Price#

import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
)
type RequestObj struct {
Amount string
ClientKey string
Currency string
Frequency string
MerchantOrderRef string
}
func GenerateSignature(requestObj RequestObj, secretKey string) string {
params := make(url.Values)
params.Add("amount", requestObj.Amount)
params.Add("client_key", requestObj.ClientKey)
params.Add("currency", requestObj.Currency)
params.Add("frequency", requestObj.Frequency)
params.Add("merchant_order_ref", requestObj.MerchantOrderRef)
data := params.Encode()
secret := []byte(secretKey)
message := []byte(data)
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to base64
hash_value := base64.StdEncoding.EncodeToString(hash.Sum(nil))
return hash_value
}

Regular Subscription#

import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
)
type RequestObj struct {
ClientKey string
Currency string
FailureUrl string
MerchantOrderRef string
Quantity string
SuccessUrl string
}
func GenerateSignature(requestObj RequestObj, secretKey string) string {
params := make(url.Values)
params.Add("client_key", requestObj.ClientKey)
params.Add("currency", requestObj.Currency)
params.Add("failure_url", requestObj.FailureUrl)
params.Add("merchant_order_ref", requestObj.MerchantOrderRef)
params.Add("quantity", requestObj.Quantity)
params.Add("success_url", requestObj.SuccessUrl)
data := params.Encode()
secret := []byte(secretKey)
message := []byte(data)
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to base64
hash_value := base64.StdEncoding.EncodeToString(hash.Sum(nil))
return hash_value
}

Ondemand Price#

import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
)
type RequestObj struct {
ClientKey string
Currency string
MerchantOrderRef string
}
func GenerateSignature(requestObj RequestObj, secretKey string) string {
params := make(url.Values)
params.Add("client_key", requestObj.ClientKey)
params.Add("currency", requestObj.Currency)
params.Add("merchant_order_ref", requestObj.MerchantOrderRef)
data := params.Encode()
secret := []byte(secretKey)
message := []byte(data)
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to base64
hash_value := base64.StdEncoding.EncodeToString(hash.Sum(nil))
return hash_value
}

Ondemand Subscription#

import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
)
type RequestObj struct {
ClientKey string
Currency string
FailureUrl string
MerchantOrderRef string
SuccessUrl string
}
func GenerateSignature(requestObj RequestObj, secretKey string) string {
params := make(url.Values)
params.Add("client_key", requestObj.ClientKey)
params.Add("currency", requestObj.Currency)
params.Add("failure_url", requestObj.FailureUrl)
params.Add("merchant_order_ref", requestObj.MerchantOrderRef)
params.Add("success_url", requestObj.SuccessUrl)
data := params.Encode()
secret := []byte(secretKey)
message := []byte(data)
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to base64
hash_value := base64.StdEncoding.EncodeToString(hash.Sum(nil))
return hash_value
}

Ondemand Deduction#

import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
)
type RequestObj struct {
Amount string
ClientKey string
Currency string
MerchantOrderRef string
SubscriptionOrderRef string
}
func GenerateSignature(requestObj RequestObj, secretKey string) string {
params := make(url.Values)
params.Add("amount", requestObj.Amount)
params.Add("client_key", requestObj.ClientKey)
params.Add("currency", requestObj.Currency)
params.Add("merchant_order_ref", requestObj.MerchantOrderRef)
params.Add("subscription_order_ref", requestObj.SubscriptionOrderRef)
data := params.Encode()
secret := []byte(secretKey)
message := []byte(data)
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to base64
hash_value := base64.StdEncoding.EncodeToString(hash.Sum(nil))
return hash_value
}