forked from go-packages/paypal
Merge pull request #84 from tungquach/master
Update order api endpoints, remove unsupported order do void api
This commit is contained in:
commit
17ba889ca0
|
@ -34,10 +34,9 @@ Currently supports **v2** only, if you want to use **v1**, use **v1.1.4** git ta
|
|||
* GET /v2/payments/sale/**ID**
|
||||
* POST /v2/payments/sale/**ID**/refund
|
||||
* GET /v2/payments/refund/**ID**
|
||||
* GET /v2/payments/orders/**ID**
|
||||
* POST /v2/payments/orders/**ID**/authorize
|
||||
* POST /v2/payments/orders/**ID**/capture
|
||||
* POST /v2/payments/orders/**ID**/do-void
|
||||
* GET /v2/checkout/orders/**ID**
|
||||
* POST /v2/checkout/orders/**ID**/authorize
|
||||
* POST /v2/checkout/orders/**ID**/capture
|
||||
* POST /v2/payments/billing-plans
|
||||
* PATCH /v2/payments/billing-plans/***ID***
|
||||
* POST /v2/payments/billing-agreements
|
||||
|
|
|
@ -128,16 +128,6 @@ func TestCaptureOrder(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestVoidOrder(t *testing.T) {
|
||||
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
|
||||
c.GetAccessToken()
|
||||
|
||||
_, err := c.VoidOrder(testOrderID)
|
||||
if err == nil {
|
||||
t.Errorf("Order is expired, 400 error must be returned")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateSinglePayout(t *testing.T) {
|
||||
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
|
||||
c.GetAccessToken()
|
||||
|
|
30
order.go
30
order.go
|
@ -3,11 +3,11 @@ package paypalsdk
|
|||
import "fmt"
|
||||
|
||||
// GetOrder retrieves order by ID
|
||||
// Endpoint: GET /v2/payments/orders/ID
|
||||
// Endpoint: GET /v2/checkout/orders/ID
|
||||
func (c *Client) GetOrder(orderID string) (*Order, error) {
|
||||
order := &Order{}
|
||||
|
||||
req, err := c.NewRequest("GET", fmt.Sprintf("%s%s%s", c.APIBase, "/v2/payments/orders/", orderID), nil)
|
||||
req, err := c.NewRequest("GET", fmt.Sprintf("%s%s%s", c.APIBase, "/v2/checkout/orders/", orderID), nil)
|
||||
if err != nil {
|
||||
return order, err
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ func (c *Client) GetOrder(orderID string) (*Order, error) {
|
|||
}
|
||||
|
||||
// AuthorizeOrder - Use this call to authorize an order.
|
||||
// Endpoint: POST /v2/payments/orders/ID/authorize
|
||||
// Endpoint: POST /v2/checkout/orders/ID/authorize
|
||||
func (c *Client) AuthorizeOrder(orderID string, amount *Amount) (*Authorization, error) {
|
||||
type authRequest struct {
|
||||
Amount *Amount `json:"amount"`
|
||||
|
@ -28,7 +28,7 @@ func (c *Client) AuthorizeOrder(orderID string, amount *Amount) (*Authorization,
|
|||
|
||||
auth := &Authorization{}
|
||||
|
||||
req, err := c.NewRequest("POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/payments/orders/"+orderID+"/authorize"), authRequest{Amount: amount})
|
||||
req, err := c.NewRequest("POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/checkout/orders/"+orderID+"/authorize"), authRequest{Amount: amount})
|
||||
if err != nil {
|
||||
return auth, err
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ func (c *Client) AuthorizeOrder(orderID string, amount *Amount) (*Authorization,
|
|||
}
|
||||
|
||||
// CaptureOrder - Use this call to capture a payment on an order. To use this call, an original payment call must specify an intent of order.
|
||||
// Endpoint: POST /v2/payments/orders/ID/capture
|
||||
// Endpoint: POST /v2/checkout/orders/ID/capture
|
||||
func (c *Client) CaptureOrder(orderID string, amount *Amount, isFinalCapture bool, currency *Currency) (*Capture, error) {
|
||||
type captureRequest struct {
|
||||
Amount *Amount `json:"amount"`
|
||||
|
@ -51,7 +51,7 @@ func (c *Client) CaptureOrder(orderID string, amount *Amount, isFinalCapture boo
|
|||
|
||||
capture := &Capture{}
|
||||
|
||||
req, err := c.NewRequest("POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/payments/orders/"+orderID+"/capture"), captureRequest{Amount: amount, IsFinalCapture: isFinalCapture, Currency: currency})
|
||||
req, err := c.NewRequest("POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/checkout/orders/"+orderID+"/capture"), captureRequest{Amount: amount, IsFinalCapture: isFinalCapture, Currency: currency})
|
||||
if err != nil {
|
||||
return capture, err
|
||||
}
|
||||
|
@ -62,21 +62,3 @@ func (c *Client) CaptureOrder(orderID string, amount *Amount, isFinalCapture boo
|
|||
|
||||
return capture, nil
|
||||
}
|
||||
|
||||
// VoidOrder - Use this call to void an existing order.
|
||||
// Note: An order cannot be voided if payment has already been partially or fully captured.
|
||||
// Endpoint: POST /v2/payments/orders/ID/do-void
|
||||
func (c *Client) VoidOrder(orderID string) (*Order, error) {
|
||||
order := &Order{}
|
||||
|
||||
req, err := c.NewRequest("POST", fmt.Sprintf("%s%s", c.APIBase, "/v2/payments/orders/"+orderID+"/do-void"), nil)
|
||||
if err != nil {
|
||||
return order, err
|
||||
}
|
||||
|
||||
if err = c.SendWithAuth(req, order); err != nil {
|
||||
return order, err
|
||||
}
|
||||
|
||||
return order, nil
|
||||
}
|
||||
|
|
21
types.go
21
types.go
|
@ -313,6 +313,18 @@ type (
|
|||
Enctype string `json:"enctype,omitempty"`
|
||||
}
|
||||
|
||||
// PurchaseUnitAmount struct
|
||||
PurchaseUnitAmount struct {
|
||||
Currency string `json:"currency_code"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
// PurchaseUnit struct
|
||||
PurchaseUnit struct {
|
||||
ReferenceID string `json:"reference_id"`
|
||||
Amount *PurchaseUnitAmount `json:"amount,omitempty"`
|
||||
}
|
||||
|
||||
// MerchantPreferences struct
|
||||
MerchantPreferences struct {
|
||||
SetupFee *AmountPayout `json:"setup_fee,omitempty"`
|
||||
|
@ -326,13 +338,12 @@ type (
|
|||
// Order struct
|
||||
Order struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
Intent string `json:"intent,omitempty"`
|
||||
PurchaseUnits []PurchaseUnit `json:"purchase_units,omitempty"`
|
||||
Links []Link `json:"links,omitempty"`
|
||||
CreateTime *time.Time `json:"create_time,omitempty"`
|
||||
UpdateTime *time.Time `json:"update_time,omitempty"`
|
||||
State string `json:"state,omitempty"`
|
||||
Amount *Amount `json:"amount,omitempty"`
|
||||
PendingReason string `json:"pending_reason,omitempty"`
|
||||
ParentPayment string `json:"parent_payment,omitempty"`
|
||||
Links []Link `json:"links,omitempty"`
|
||||
}
|
||||
|
||||
// Payer struct
|
||||
|
|
Loading…
Reference in New Issue
Block a user