Skip to content

Commit

Permalink
调整
Browse files Browse the repository at this point in the history
  • Loading branch information
smartwalle committed Apr 18, 2023
1 parent ee8e546 commit 830efc0
Show file tree
Hide file tree
Showing 20 changed files with 355 additions and 333 deletions.
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,21 +100,21 @@ var payment, err = client.ExpressCreatePayment(invoiceNumber, total, currency, c
##### 2. 高级接口

```Golang
var p = &Payment{}
p.Intent = K_PAYPAL_PAYMENT_INTENT_SALE
p.Payer = &Payer{}
var p = &paypal.Payment{}
p.Intent = paypal.PaymentIntentSale
p.Payer = &paypal.Payer{}
p.Payer.PaymentMethod = "paypal"
p.RedirectURLs = &RedirectURLs{}
p.RedirectURLs = &paypal.RedirectURLs{}
p.RedirectURLs.CancelURL = "http://www.baidu.com"
p.RedirectURLs.ReturnURL = "http://127.0.0.1:9001/paypal"

var transaction = &Transaction{}
p.Transactions = []*Transaction{transaction}
var transaction = &paypal.Transaction{}
p.Transactions = []*paypal.Transaction{transaction}

transaction.Amount = &Amount{}
transaction.Amount = &paypal.Amount{}
transaction.Amount.Total = "30.11"
transaction.Amount.Currency = "USD"
transaction.Amount.Details = &AmountDetails{}
transaction.Amount.Details = &paypal.AmountDetails{}
transaction.Amount.Details.Subtotal = "30.00"
transaction.Amount.Details.Tax = "0.07"
transaction.Amount.Details.Shipping = "0.03"
Expand All @@ -126,12 +126,12 @@ transaction.Description = "This is the payment transaction description."
transaction.Custom = "EBAY_EMS_90048630024435"
transaction.InvoiceNumber = uuid.New() // 随机生成一串 Invoice Number

transaction.PaymentOptions = &PaymentOptions{}
transaction.PaymentOptions = &paypal.PaymentOptions{}
transaction.PaymentOptions.AllowedPaymentMethod = "INSTANT_FUNDING_SOURCE"
transaction.SoftDescriptor = "ECHI5786786"

transaction.ItemList = &ItemList{}
transaction.ItemList.ShippingAddress = &ShippingAddress{}
transaction.ItemList = &paypal.ItemList{}
transaction.ItemList.ShippingAddress = &paypal.ShippingAddress{}
transaction.ItemList.ShippingAddress.RecipientName = "Hello World"
transaction.ItemList.ShippingAddress.Line1 = "4thFloor"
transaction.ItemList.ShippingAddress.Line2 = "unit#34"
Expand All @@ -141,8 +141,8 @@ transaction.ItemList.ShippingAddress.PostalCode = "95131"
transaction.ItemList.ShippingAddress.Phone = "011862212345678"
transaction.ItemList.ShippingAddress.State = "CA"

var i1, i2 = &Item{}, &Item{}
transaction.ItemList.Items = []*Item{i1, i2}
var i1, i2 = &paypal.Item{}, &paypal.Item{}
transaction.ItemList.Items = []*paypal.Item{i1, i2}

i1.Name = "hat"
i1.Description = "Brown color hat"
Expand Down Expand Up @@ -191,7 +191,7 @@ http://192.168.192.250:3000/paypal?paymentId=PAY-37A82711YL064934DLB4G3AQ&token=

核准账单支付信息的时候,需要用到 paymentId 和 payerID。

我们在提供的 ReturnURL 服务中应执行核准账单支付信息的操作
我们在提供的 ReturnURL 接口中应执行核准账单支付信息的操作

```Golang
var payment, err = client.ExecuteApprovedPayment(paymentId, payerID)
Expand Down Expand Up @@ -224,7 +224,7 @@ var payment, err = client.ExecuteApprovedPayment(paymentId, payerID)
```

3. 从账单中获取类型为 approval_url 的 URL,浏览器打开进行支付
4. ReturnURL 服务中进行核准账单支付
4. ReturnURL 接口中进行核准账单支付

```
var client = paypal.New(...)
Expand Down
12 changes: 6 additions & 6 deletions dispute.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ const (
)

// GetDisputeList https://developer.paypal.com/docs/api/customer-disputes/#disputes_get-disputes
func (this *Client) GetDisputeList(param *DisputeListParam) (results *DisputeList, err error) {
func (this *Client) GetDisputeList(param *DisputeListParam) (result *DisputeList, err error) {
var api = this.BuildAPI(kDisputesAPI) + param.QueryString()
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// GetDisputeDetails https://developer.paypal.com/docs/api/customer-disputes/#disputes_get-dispute
func (this *Client) GetDisputeDetails(disputeId string) (results *Dispute, err error) {
func (this *Client) GetDisputeDetails(disputeId string) (result *Dispute, err error) {
var api = this.BuildAPI(kDisputesAPI, disputeId)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}
26 changes: 15 additions & 11 deletions dispute_test.go
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
package paypal
package paypal_test

import (
"fmt"
"github.com/smartwalle/paypal"
"testing"
)

func TestPayPal_GetDisputeList(t *testing.T) {
var param = &DisputeListParam{}
var param = &paypal.DisputeListParam{}
param.PageSize = 10
var results, err = paypal.GetDisputeList(param)
var result, err = client.GetDisputeList(param)
if err != nil {
t.Fatal(err)
}
for _, dispute := range results.Items {
fmt.Println(dispute.DisputeId, dispute.Status)
for _, dispute := range result.Items {
t.Log(dispute.DisputeId, dispute.Status)
}

for _, link := range result.Links {
t.Log(link.Method, link.Rel, link.Href, link.EncType)
}
}

func TestPayPal_GetDisputeDetails(t *testing.T) {
//var results, err = paypal.GetDisputeDetails("PP-000-042-621-836")
//if err != nil {
// t.Fatal(err)
//}
//fmt.Println(results.DisputeId, results.DisputedTransactions[0].InvoiceNumber)
var result, err = client.GetDisputeDetails("PP-000-042-621-836")
if err != nil {
t.Fatal(err)
}
t.Log(result.DisputeId, result.DisputedTransactions[0].InvoiceNumber)
}
12 changes: 6 additions & 6 deletions dispute_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (
type DisputeStatus string

const (
K_DISPUTE_STATUS_OPEN DisputeStatus = "OPEN"
K_DISPUTE_STATUS_WAITING_FOR_BUYER_RESPONSE DisputeStatus = "WAITING_FOR_BUYER_RESPONSE"
K_DISPUTE_STATUS_WAITING_FOR_SELLER_RESPONSE DisputeStatus = "WAITING_FOR_SELLER_RESPONSE"
K_DISPUTE_STATUS_UNDER_REVIEW DisputeStatus = "UNDER_REVIEW"
K_DISPUTE_STATUS_RESOLVED DisputeStatus = "RESOLVED"
K_DISPUTE_STATUS_OTHER DisputeStatus = "OTHER"
DisputeStatusOpen DisputeStatus = "OPEN"
DisputeStatusWaitingForBuyerResponse DisputeStatus = "WAITING_FOR_BUYER_RESPONSE"
DisputeStatusWaitingForSellerResponse DisputeStatus = "WAITING_FOR_SELLER_RESPONSE"
DisputeStatusUnderReview DisputeStatus = "UNDER_REVIEW"
DisputeStatusResolved DisputeStatus = "RESOLVED"
DisputeStatusOther DisputeStatus = "OTHER"
)

type Dispute struct {
Expand Down
6 changes: 3 additions & 3 deletions error.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
)

const (
K_ERR_TYPE_VALIDATION_ERROR = "VALIDATION_ERROR"
K_ERR_TYPE_INSTRUMENT_DECLINED = "INSTRUMENT_DECLINED"
K_ERR_TYPE_PAYMENT_ALREADY_DONE = "PAYMENT_ALREADY_DONE"
ErrTypeValidation = "VALIDATION_ERROR"
ErrTypeInstrumentDeclined = "INSTRUMENT_DECLINED"
ErrTypePaymentAlreadyDone = "PAYMENT_ALREADY_DONE"
)

type ResponseError struct {
Expand Down
2 changes: 1 addition & 1 deletion invoice_test.go
Original file line number Diff line number Diff line change
@@ -1 +1 @@
package paypal
package paypal_test
2 changes: 1 addition & 1 deletion log.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func SetLogger(l Logger) {
l = &nilLogger{}
}
if l.Prefix() == "" {
l.SetPrefix("[dbs] ")
l.SetPrefix("[paypal] ")
}
logger = l
}
Expand Down
18 changes: 9 additions & 9 deletions payment_experience.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ const (
)

// CreateWebExperienceProfile https://developer.paypal.com/docs/api/payment-experience/#web-profile
func (this *Client) CreateWebExperienceProfile(param *WebProfiles) (results *WebProfiles, err error) {
func (this *Client) CreateWebExperienceProfile(param *WebProfiles) (result *WebProfiles, err error) {
var api = this.BuildAPI(kWebProfilesAPI)
err = this.doRequestWithAuth(http.MethodPost, api, param, &results)
return results, err
err = this.doRequestWithAuth(http.MethodPost, api, param, &result)
return result, err
}

// GetWebExperienceProfileList https://developer.paypal.com/docs/api/payment-experience/#web-profiles_get-list
func (this *Client) GetWebExperienceProfileList() (results []*WebProfiles, err error) {
func (this *Client) GetWebExperienceProfileList() (result []*WebProfiles, err error) {
var api = this.BuildAPI(kWebProfilesAPI)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// DeleteWebExperienceProfile https://developer.paypal.com/docs/api/payment-experience/#web-profiles_delete
Expand All @@ -28,10 +28,10 @@ func (this *Client) DeleteWebExperienceProfile(profileId string) (err error) {
}

// GetWebExperienceProfileDetails https://developer.paypal.com/docs/api/payment-experience/#web-profiles_get
func (this *Client) GetWebExperienceProfileDetails(profileId string) (results *WebProfiles, err error) {
func (this *Client) GetWebExperienceProfileDetails(profileId string) (result *WebProfiles, err error) {
var api = this.BuildAPI(kWebProfilesAPI, profileId)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// UpdateWebExperienceProfiles https://developer.paypal.com/docs/api/payment-experience/#web-profiles_update
Expand Down
54 changes: 29 additions & 25 deletions payment_experience_test.go
Original file line number Diff line number Diff line change
@@ -1,41 +1,45 @@
package paypal
package paypal_test

import (
"github.com/smartwalle/paypal"
"testing"
)

func TestPayPal_CreateWebExperienceProfile(t *testing.T) {
//var p = &WebProfiles{}
//p.Name = "Test Name"
//p.Presentation = &WebProfilesPresentation{}
//p.Presentation.LogoImage = ""
//p.Presentation.BrandName = ""
//
//var result, err = paypal.CreateWebExperienceProfile(p)
//fmt.Println(err)
//fmt.Println(result.Id, result.Presentation.LogoImage)
var p = &paypal.WebProfiles{}
p.Name = "Test Name"
p.Presentation = &paypal.WebProfilesPresentation{}
p.Presentation.LogoImage = ""
p.Presentation.BrandName = ""

var result, err = client.CreateWebExperienceProfile(p)

if err != nil {
t.Fatal(err)
}
t.Log(result.Id, result.Presentation.LogoImage)
}

func TestPayPal_GetWebExperienceProfileList(t *testing.T) {
//var results, err = paypal.GetWebExperienceProfileList()
//if err != nil {
// t.Fatal(err)
//}
//
//for _, profile := range results {
// fmt.Println(profile.Id, profile.Name)
//}
var result, err = client.GetWebExperienceProfileList()
if err != nil {
t.Fatal(err)
}

for _, profile := range result {
t.Logf(profile.Id, profile.Name)
}
}

func TestPayPal_DeleteWebExperienceProfile(t *testing.T) {
//var err = paypal.DeleteWebExperienceProfile("XP-6MSR-MERU-75MJ-SCXL")
//fmt.Println(err)
//var err = client.DeleteWebExperienceProfile("XP-6MSR-MERU-75MJ-SCXL")
//t.Log(err)
}

func TestPayPal_GetWebhookDetails(t *testing.T) {
//var webhook, err = paypal.GetWebExperienceProfileDetails("XP-BEFQ-A67P-RNXQ-LJLM")
//if err != nil {
// t.Fatal(err)
//}
//fmt.Println(webhook.Id, webhook.Name)
var webhook, err = client.GetWebExperienceProfileDetails("XP-BEFQ-A67P-RNXQ-LJLM")
if err != nil {
t.Fatal(err)
}
t.Log(webhook.Id, webhook.Name)
}
52 changes: 26 additions & 26 deletions payments.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ const (

// CreatePayment https://developer.paypal.com/docs/api/payments/#payment
// 因为接口返回的 payment 数据只比提交的 payment 数据多了几个字段,所以本接口的参数和返回结果共用同一数据结构。
func (this *Client) CreatePayment(payment *Payment) (results *Payment, err error) {
func (this *Client) CreatePayment(payment *Payment) (result *Payment, err error) {
var api = this.BuildAPI(kPaymentAPI)
err = this.doRequestWithAuth(http.MethodPost, api, payment, &results)
return results, err
err = this.doRequestWithAuth(http.MethodPost, api, payment, &result)
return result, err
}

func (this *Client) ExpressCreatePayment(invoiceNumber, total, currency, cancelURL, returnURL string) (results *Payment, err error) {
func (this *Client) ExpressCreatePayment(invoiceNumber, total, currency, cancelURL, returnURL string) (result *Payment, err error) {
var p = &Payment{}
p.Intent = K_PAYMENT_INTENT_SALE
p.Intent = PaymentIntentSale
p.Payer = &Payer{}
p.Payer.PaymentMethod = K_PAYMENT_METHOD_PAYPAL
p.Payer.PaymentMethod = PaymentMethodPayPal
p.RedirectURLs = &RedirectURLs{}
p.RedirectURLs.CancelURL = cancelURL
p.RedirectURLs.ReturnURL = returnURL
Expand All @@ -33,52 +33,52 @@ func (this *Client) ExpressCreatePayment(invoiceNumber, total, currency, cancelU
transaction.Amount.Total = total
transaction.Amount.Currency = currency

results, err = this.CreatePayment(p)
return results, err
result, err = this.CreatePayment(p)
return result, err
}

// GetPaymentList https://developer.paypal.com/docs/api/payments/#payment_list
func (this *Client) GetPaymentList(param *PaymentListParam) (results *PaymentList, err error) {
func (this *Client) GetPaymentList(param *PaymentListParam) (result *PaymentList, err error) {
var api = this.BuildAPI(kPaymentAPI) + param.QueryString()
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// GetPaymentDetails https://developer.paypal.com/docs/api/payments/#payment_get
func (this *Client) GetPaymentDetails(paymentId string) (results *Payment, err error) {
func (this *Client) GetPaymentDetails(paymentId string) (result *Payment, err error) {
var api = this.BuildAPI(kPaymentAPI, paymentId)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// ExecuteApprovedPayment https://developer.paypal.com/docs/api/payments/#payment_execute
// 从回调 URL 中获取 PayerId
func (this *Client) ExecuteApprovedPayment(paymentId, payerId string) (results *Payment, err error) {
func (this *Client) ExecuteApprovedPayment(paymentId, payerId string) (result *Payment, err error) {
var p = map[string]interface{}{}
p["payer_id"] = payerId

var api = this.BuildAPI(kPaymentAPI, paymentId, "execute")
err = this.doRequestWithAuth(http.MethodPost, api, p, &results)
return results, err
err = this.doRequestWithAuth(http.MethodPost, api, p, &result)
return result, err
}

// GetSaleDetails https://developer.paypal.com/docs/api/payments/#sale_get
func (this *Client) GetSaleDetails(saleId string) (results *Sale, err error) {
func (this *Client) GetSaleDetails(saleId string) (result *Sale, err error) {
var api = this.BuildAPI(kSaleAPI, saleId)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}

// RefundSale https://developer.paypal.com/docs/api/payments/#sale_refund
func (this *Client) RefundSale(saleId string, param *RefundSaleParam) (results *Refund, err error) {
func (this *Client) RefundSale(saleId string, param *RefundSaleParam) (result *Refund, err error) {
var api = this.BuildAPI(kSaleAPI, saleId, "/refund")
err = this.doRequestWithAuth(http.MethodPost, api, param, &results)
return results, err
err = this.doRequestWithAuth(http.MethodPost, api, param, &result)
return result, err
}

// GetRefundDetails https://developer.paypal.com/docs/api/payments/#refund_get
func (this *Client) GetRefundDetails(refundId string) (results *Refund, err error) {
func (this *Client) GetRefundDetails(refundId string) (result *Refund, err error) {
var api = this.BuildAPI(kRefundAPI, refundId)
err = this.doRequestWithAuth(http.MethodGet, api, nil, &results)
return results, err
err = this.doRequestWithAuth(http.MethodGet, api, nil, &result)
return result, err
}
Loading

0 comments on commit 830efc0

Please sign in to comment.