leebenson / Paypal
Licence: mit
PayPal Website Payments Pro API for Go (golang)
Stars: ✭ 32
Programming Languages
go
31211 projects - #10 most used programming language
Payment REST API Go client
This is a client for the Paypal REST API (https://developer.paypal.com/webapps/developer/docs/api/
Goals
- [x] Automated tests that don't require manual approval in Paypal account
- [ ] Automated tests that require manual approval in a Paypal account (with a different build tag, eg.
PAYPAL_APPROVED_PAYMENT_ID
- [ ] Concurrency safety by utilizing
PayPal-Request-Id
Usage
go get github.com/leebenson/paypal
Import into your app and start using it:
package main
import (
"fmt"
"log"
"os"
"github.com/leebenson/paypal"
)
func main() {
clientID := os.Getenv("PAYPAL_CLIENTID")
if clientID == "" {
panic("PayPal clientID is missing")
}
secret := os.Getenv("PAYPAL_SECRET")
if secret == "" {
panic("PayPal secret is missing")
}
client := paypal.NewClient(clientID, secret, paypal.APIBaseLive)
payments, err := client.ListPayments(map[string]string{
"count": "10",
"sort_by": "create_time",
})
if err != nil {
log.Fatal("Could not retrieve payments: ", err)
}
fmt.Println(payments)
}
Run tests
This library use Goconvey for tests, so to run them, start Goconvey:
PAYPAL_TEST_CLIENTID=[Paypal Client ID] PAYPAL_TEST_SECRET=[Paypal Secret] goconvey
Or you can just use go test
PAYPAL_TEST_CLIENTID=[Paypal Client ID] PAYPAL_TEST_SECRET=[Paypal Secret] go test
Roadmap
- [x] Payments - Payment
- [x] Payments - Sale transactions
- [x] Payments - Refunds
- [x] Payments - Authorizations
- [x] Payments - Captures
- [ ] Payments - Billing Plans and Agreements
- [ ] Payments - Order
- [ ] Vault
- [ ] Identity
- [ ] Invoicing
- [ ] Payment Experience
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].