Payment REST API Go client
This is a client for the Paypal REST API (https://developer.paypal.com/webapps/developer/docs/api/
Goals
- 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/fundary/paypal
Import into your app and start using it:
package main
import (
"fmt"
"log"
"os"
"github.com/fundary/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