mirror of
https://github.com/plutov/paypal.git
synced 2025-01-23 10:21:03 +01:00
112 lines
2.6 KiB
Go
112 lines
2.6 KiB
Go
package paypalsdk_test
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
pp "github.com/logpacker/PayPal-Go-SDK"
|
|
)
|
|
|
|
func BillingExample() {
|
|
plan := pp.BillingPlan{
|
|
Name: "Plan with Regular and Trial Payment Definitions",
|
|
Description: "Plan with regular and trial payment definitions.",
|
|
Type: "fixed",
|
|
PaymentDefinitions: []pp.PaymentDefinition{
|
|
pp.PaymentDefinition{
|
|
Name: "Regular payment definition",
|
|
Type: "REGULAR",
|
|
Frequency: "MONTH",
|
|
FrequencyInterval: "2",
|
|
Amount: pp.AmountPayout{
|
|
Value: "100",
|
|
Currency: "USD",
|
|
},
|
|
Cycles: "12",
|
|
ChargeModels: []pp.ChargeModel{
|
|
pp.ChargeModel{
|
|
Type: "SHIPPING",
|
|
Amount: pp.AmountPayout{
|
|
Value: "10",
|
|
Currency: "USD",
|
|
},
|
|
},
|
|
pp.ChargeModel{
|
|
Type: "TAX",
|
|
Amount: pp.AmountPayout{
|
|
Value: "12",
|
|
Currency: "USD",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
pp.PaymentDefinition{
|
|
Name: "Trial payment definition",
|
|
Type: "trial",
|
|
Frequency: "week",
|
|
FrequencyInterval: "5",
|
|
Amount: pp.AmountPayout{
|
|
Value: "9.19",
|
|
Currency: "USD",
|
|
},
|
|
Cycles: "2",
|
|
ChargeModels: []pp.ChargeModel{
|
|
pp.ChargeModel{
|
|
Type: "SHIPPING",
|
|
Amount: pp.AmountPayout{
|
|
Value: "1",
|
|
Currency: "USD",
|
|
},
|
|
},
|
|
pp.ChargeModel{
|
|
Type: "TAX",
|
|
Amount: pp.AmountPayout{
|
|
Value: "2",
|
|
Currency: "USD",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MerchantPreferences: &pp.MerchantPreferences{
|
|
SetupFee: &pp.AmountPayout{
|
|
Value: "1",
|
|
Currency: "USD",
|
|
},
|
|
ReturnURL: "http://www.paypal.com",
|
|
CancelURL: "http://www.paypal.com/cancel",
|
|
AutoBillAmount: "YES",
|
|
InitialFailAmountAction: "CONTINUE",
|
|
MaxFailAttempts: "0",
|
|
},
|
|
}
|
|
c, err := pp.NewClient("clientID", "secretID", pp.APIBaseSandBox)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
_, err = c.GetAccessToken()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
planResp, err := c.CreateBillingPlan(plan)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = c.ActivatePlan(planResp.ID)
|
|
fmt.Println(err)
|
|
agreement := pp.BillingAgreement{
|
|
Name: "Fast Speed Agreement",
|
|
Description: "Agreement for Fast Speed Plan",
|
|
StartDate: pp.JSONTime(time.Now().Add(time.Hour * 24)),
|
|
Plan: pp.BillingPlan{ID: planResp.ID},
|
|
Payer: pp.Payer{
|
|
PaymentMethod: "paypal",
|
|
},
|
|
}
|
|
resp, err := c.CreateBillingAgreement(agreement)
|
|
fmt.Println(err, resp)
|
|
|
|
bps, err := c.ListBillingPlans(pp.BillingPlanListParams{Status: "ACTIVE"})
|
|
fmt.Println(err, bps)
|
|
}
|