package paypal import ( "bkb-payment/pkg/util" "bytes" "encoding/json" "io" "net/http" ) func CreateOrder(token string, params *CreateOrderRequest) (error, OrderDetail) { var ( err error result OrderDetail ) params.Intent = "CAPTURE" reqBytes, _ := json.Marshal(¶ms) req, err := http.NewRequest(http.MethodPost, baseurl+orderBase, bytes.NewBuffer(reqBytes)) if err != nil { return err, result } req.Header.Add("Content-Type", "application/json") req.Header.Add("PayPal-Request-Id", util.GetRandomString(20)) req.Header.Add("Authorization", "Bearer "+token) httpClient := &http.Client{} resp, err := httpClient.Do(req) if err != nil { return err, result } defer resp.Body.Close() resBody, err := io.ReadAll(resp.Body) if err != nil { return err, result } err = json.Unmarshal(resBody, &result) if err != nil { return err, result } return nil, result } func GetOrder(token, id string) (err error, result OrderDetail) { req, err := http.NewRequest(http.MethodGet, baseurl+orderBase+"/"+id, nil) if err != nil { return } req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Bearer "+token) httpClient := &http.Client{} resp, err := httpClient.Do(req) if err != nil { return } defer resp.Body.Close() resBody, err := io.ReadAll(resp.Body) if err != nil { return } err = json.Unmarshal(resBody, &result) if err != nil { return } return } func ConfirmOrder(token, id string, params *PaymentSourceRequest) (err error, result OrderDetail) { reqBytes, _ := json.Marshal(¶ms) req, err := http.NewRequest(http.MethodPost, baseurl+orderBase+"/"+id+"/confirm-payment-source", bytes.NewBuffer(reqBytes)) if err != nil { return err, result } req.Header.Add("Content-Type", "application/json") req.Header.Add("PayPal-Request-Id", util.GetRandomString(20)) req.Header.Add("Authorization", "Bearer "+token) httpClient := &http.Client{} resp, err := httpClient.Do(req) if err != nil { return err, result } defer resp.Body.Close() resBody, err := io.ReadAll(resp.Body) if err != nil { return err, result } err = json.Unmarshal(resBody, &result) if err != nil { return err, result } return nil, result } func CapturePaymentOrder(token, id string, params *PaymentSourceRequest) (err error, result OrderDetail) { reqBytes, _ := json.Marshal(¶ms) req, err := http.NewRequest(http.MethodPost, baseurl+orderBase+"/"+id+"/capture", bytes.NewBuffer(reqBytes)) if err != nil { return err, result } req.Header.Add("Content-Type", "application/json") req.Header.Add("PayPal-Request-Id", util.GetRandomString(20)) req.Header.Add("Authorization", "Bearer "+token) httpClient := &http.Client{} resp, err := httpClient.Do(req) if err != nil { return err, result } defer resp.Body.Close() resBody, err := io.ReadAll(resp.Body) if err != nil { return err, result } //fmt.Println("CapturePaymentOrder:", string(resBody)) err = json.Unmarshal(resBody, &result) if err != nil { return err, result } return nil, result } func ShowPayoutsDetail(token, id string) (err error, result PayoutResponse) { //reqBytes, _ := json.Marshal(¶ms) req, err := http.NewRequest(http.MethodGet, baseurl+"/v1/payments/payouts/"+id, nil) if err != nil { return err, result } req.Header.Add("Content-Type", "application/json") req.Header.Add("PayPal-Request-Id", util.GetRandomString(20)) req.Header.Add("Authorization", "Bearer "+token) httpClient := &http.Client{} resp, err := httpClient.Do(req) if err != nil { return err, result } defer resp.Body.Close() resBody, err := io.ReadAll(resp.Body) if err != nil { return err, result } err = json.Unmarshal(resBody, &result) if err != nil { return err, result } return nil, result }