Copy package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type RequestData struct {
IsSubMerchant bool `json:"IsSubMerchant"`
MemberType int `json:"MemberType"`
MemberExternalId string `json:"MemberExternalId"`
MemberName string `json:"MemberName"`
MemberTitle string `json:"MemberTitle"`
MemberTaxOffice string `json:"MemberTaxOffice"`
MemberTaxNumber string `json:"MemberTaxNumber"`
MemberIdentityNumber string `json:"MemberIdentityNumber"`
MemberEmail string `json:"MemberEmail"`
MemberPhone string `json:"MemberPhone"`
MemberAddress string `json:"MemberAddress"`
ContactName string `json:"ContactName"`
ContactLastname string `json:"ContactLastname"`
BankAccounts []BankAccount `json:"BankAccounts"`
ValueDate ValueDate `json:"ValueDate"`
}
type BankAccount struct {
CurrencyId int `json:"CurrencyId"`
Title string `json:"Title"`
Iban string `json:"Iban"`
}
type ValueDate struct {
CalculationType int `json:"CalculationType"`
CalculationValue int `json:"CalculationValue"`
Commission int `json:"Commission"`
}
type ResponseData struct {
ErrorCode int `json:"ErrorCode"`
Result bool `json:"Result"`
Message string `json:"Message"`
Body BodyData `json:"Body"`
}
type BodyData struct {
Id int `json:"Id"`
IsSubMerchant bool `json:"IsSubMerchant"`
MemberType int `json:"MemberType"`
MemberExternalId string `json:"MemberExternalId"`
MemberName string `json:"MemberName"`
MemberTitle string `json:"MemberTitle"`
MemberTaxOffice string `json:"MemberTaxOffice"`
MemberTaxNumber string `json:"MemberTaxNumber"`
MemberIdentityNumber string `json:"MemberIdentityNumber"`
MemberEmail string `json:"MemberEmail"`
MemberPhone string `json:"MemberPhone"`
MemberAddress string `json:"MemberAddress"`
ContactName string `json:"ContactName"`
ContactLastname string `json:"ContactLastname"`
InsertDateTime string `json:"InsertDateTime"`
}
func main() {
url := "{{MemberBaseAddress}}/api/paywall/member"
data := RequestData{
IsSubMerchant: true,
MemberType: 1,
MemberExternalId: "111aa11135552244413",
MemberName: "Intranet Technology",
MemberTitle: "Intranet Technology Yazılım A.S",
MemberTaxOffice: "Besiktas",
MemberTaxNumber: "4651176935",
MemberIdentityNumber: "11111111110",
MemberEmail: "[email protected] ",
MemberPhone: "5554443322",
MemberAddress: "test adresi",
ContactName: "Member Name",
ContactLastname: "Lastname",
BankAccounts: []BankAccount{
{
CurrencyId: 1,
Title: "Ünvan",
Iban: "TR370006400012345678987654",
},
},
ValueDate: ValueDate{
CalculationType: 1,
CalculationValue: 10,
Commission: 10,
},
}
requestBody, _ := json.Marshal(data)
client := &http.Client{}
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("apikeypublic", "%PUBLICKEY%")
req.Header.Set("apiclientpublic", "%PUBLICCLIENT%")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var responseData ResponseData
json.Unmarshal(body, &responseData)
fmt.Println("ErrorCode:", responseData.ErrorCode)
fmt.Println("Result:", responseData.Result)
fmt.Println("Message:", responseData.Message)
fmt.Println("Body.Id:", responseData.Body.Id)
fmt.Println("Body.IsSubMerchant:", responseData.Body.IsSubMerchant)
fmt.Println("Body.MemberType:", responseData.Body.MemberType)
fmt.Println("Body.MemberExternalId:", responseData.Body.MemberExternalId)
fmt.Println("Body.MemberName:", responseData.Body.MemberName)
fmt.Println("Body.MemberTitle:", responseData.Body.MemberTitle)
fmt.Println("Body.MemberTaxOffice:", responseData.Body.MemberTaxOffice)
fmt.Println("Body.MemberTaxNumber:", responseData.Body.MemberTaxNumber)
fmt.Println("Body.MemberIdentityNumber:", responseData.Body.MemberIdentityNumber)
fmt.Println("Body.MemberEmail:", responseData.Body.MemberEmail)
fmt.Println("Body.MemberPhone:", responseData.Body.MemberPhone)
fmt.Println("Body.MemberAddress:", responseData.Body.MemberAddress)
fmt.Println("Body.ContactName:", responseData.Body.ContactName)
fmt.Println("Body.ContactLastname:", responseData.Body.ContactLastname)
fmt.Println("Body.InsertDateTime:", responseData.Body.InsertDateTime)
}