git://www.github.com/logpacker/PayPal-Go-SDK.git
git clone http://www.github.com/logpacker/PayPal-Go-SDK
$ svn co --depth empty http://www.github.com/logpacker/PayPal-Go-SDK
Checked out revision 1.
$ cd repo
$ svn up trunk
这里SDK客户端中可能缺少某些端点,但你可以使用内置的 paypalsdk函数来执行请求:NewClient -> NewRequest -> SendWithAuth
import"github.com/logpacker/PayPal-Go-SDK"// Create a client instancec, err:= paypalsdk.NewClient("clientID", "secretID", paypalsdk.APIBaseSandBox) c.SetLog(os.Stdout) // Set log to terminal stdoutaccessToken, err:= c.GetAccessToken()
amount:= paypalsdk.Amount{ Total: "7.00", Currency: "USD", }redirectURI:="http://example.com/redirect-uri"cancelURI:="http://example.com/cancel-uri"description:="Description for this payment"paymentResult, err:= c.CreateDirectPaypalPayment(amount, redirectURI, cancelURI, description)
p:= paypalsdk.Payment{ Intent: "sale", Payer: &paypalsdk.Payer{ PaymentMethod: "credit_card", FundingInstruments: []paypalsdk.FundingInstrument{paypalsdk.FundingInstrument{ CreditCard: &paypalsdk.CreditCard{ Number: "4111111111111111", Type: "visa", ExpireMonth: "11", ExpireYear: "2020", CVV2: "777", FirstName: "John", LastName: "Doe", }, }}, }, Transactions: []paypalsdk.Transaction{paypalsdk.Transaction{ Amount: &paypalsdk.Amount{ Currency: "USD", Total: "7.00", }, Description: "My Payment", }}, RedirectURLs: &paypalsdk.RedirectURLs{ ReturnURL: "http://...", CancelURL: "http://...", }, }paymentResponse, err:= client.CreatePayment(p)
paymentID:="PAY-17S8410768582940NKEE66EQ"payerID:="7E7MGXCWTTKK2"executeResult, err:= c.ExecuteApprovedPayment(paymentID, payerID)
payment, err:= c.GetPayment("PAY-17S8410768582940NKEE66EQ")
payments, err:= c.GetPayments()
auth, err:= c.GetAuthorization("2DC87612EK520411B")
capture, err:= c.CaptureAuthorization(authID, &paypalsdk.Amount{Total: "7.00", Currency: "USD"}, true)
auth, err:= c.VoidAuthorization(authID)
auth, err:= c.ReauthorizeAuthorization(authID, &paypalsdk.Amount{Total: "7.00", Currency: "USD"})
sale, err:= c.GetSale("36C38912MN9658832")
// Fullrefund, err:= c.RefundSale(saleID, nil)// Partialrefund, err:= c.RefundSale(saleID, &paypalsdk.Amount{Total: "7.00", Currency: "USD"})
refund, err:= c.GetRefund("O-4J082351X3132253H")
order, err:= c.GetOrder("O-4J082351X3132253H")
auth, err:= c.AuthorizeOrder(orderID, &paypalsdk.Amount{Total: "7.00", Currency: "USD"})
capture, err:= c.CaptureOrder(orderID, &paypalsdk.Amount{Total: "7.00", Currency: "USD"}, true, nil)
order, err:= c.VoidOrder(orderID)
token, err:= c.GrantNewAccessTokenFromAuthCode("<Authorization-Code>", "http://example.com/myapp/return.php")//.. . or by refresh tokentoken, err:= c.GrantNewAccessTokenFromRefreshToken("<Refresh-Token>")
userInfo, err:= c.GetUserInfo("openid")
payout:= paypalsdk.Payout{ SenderBatchHeader: &paypalsdk.SenderBatchHeader{ EmailSubject: "Subject will be displayed on PayPal", }, Items: []paypalsdk.PayoutItem{ paypalsdk.PayoutItem{ RecipientType: "EMAIL", Receiver: "single-email-payout@mail.com", Amount: &paypalsdk.AmountPayout{ Value: "15.11", Currency: "USD", }, Note: "Optional note", SenderItemID: "Optional Item ID", }, }, }payoutResp, err:= c.CreateSinglePayout(payout)
payout, err:= c.GetPayout("PayoutBatchID")
payoutItem, err:= c.GetPayoutItem("PayoutItemID")
payoutItem, err:= c.CancelPayoutItem("PayoutItemID")
webprofile:=WebProfile{ Name: "YeowZa! T-Shirt Shop", Presentation: Presentation{ BrandName: "YeowZa! Paypal", LogoImage: "http://www.yeowza.com", LocaleCode: "US", }, InputFields: InputFields{ AllowNote: true, NoShipping: NoShippingDisplay, AddressOverride: AddrOverrideFromCall, }, FlowConfig: FlowConfig{ LandingPageType: LandingPageTypeBilling, BankTXNPendingURL: "http://www.yeowza.com", }, }result, err:= c.CreateWebProfile(webprofile)
webprofile, err:= c.GetWebProfile("XP-CP6S-W9DY-96H8-MVN2")
webprofiles, err:= c.GetWebProfiles()
webprofile:=WebProfile{ ID: "XP-CP6S-W9DY-96H8-MVN2", Name: "Shop YeowZa! YeowZa! ", }err:= c.SetWebProfile(webprofile)
err:= c.DeleteWebProfile("XP-CP6S-W9DY-96H8-MVN2")
// Store CCc.StoreCreditCard(paypalsdk.CreditCard{ Number: "4417119669820331", Type: "visa", ExpireMonth: "11", ExpireYear: "2020", CVV2: "874", FirstName: "Foo", LastName: "Bar", })// Delete itc.DeleteCreditCard("CARD-ID-123")// Edit itc.PatchCreditCard("CARD-ID-123", []paypalsdk.CreditCardField{ paypalsdk.CreditCardField{ Operation: "replace", Path: "/billing_address/line1", Value: "New value", }, })// Get itc.GetCreditCard("CARD-ID-123")// Get all stored credit cardsc.GetCreditCards(nil)
go test
go test -tags=integration