func SetHTTPClient(client *http.Client) {
	httpClient = client
}
SetHTTPClient overrides the default HTTP client.
This is useful if you're running in a Google AppEngine environment
where the http.DefaultClient is not available.
package stripe
import (
	"bytes"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"net/http"
	"os"
	"os/exec"
	"runtime"
	"strings"
	"sync"
	"time"
	"github.com/stripe/stripe-go/form"
)
const (
	apiURL     = "https://api.stripe.com/v1"
	uploadsURL = "https://uploads.stripe.com/v1"
)
const apiversion = "2017-05-25"
const clientversion = "28.12.0"
const defaultHTTPTimeout = 80 * time.Second
const TotalBackends = 2
const UnknownPlatform = "unknown platform"
type AppInfo struct {
	Name    string `json:"name"`
	URL     string `json:"url"`
	Version string `json:"version"`
}
func (a *AppInfo) formatUserAgent() string {
	str := a.Name
	if a.Version != "" {
		str += "/" + a.Version
	}
	if a.URL != "" {
		str += " (" + a.URL + ")"
	}
	return str
}
type Backend interface {
	Call(method, path, key string, body *form.Values, params *Params, v interface{}) error
	CallMultipart(method, path, key, boundary string, body io.Reader, params *Params, v interface{}) error
}
type BackendConfiguration struct {
	Type       SupportedBackend
	URL        string
	HTTPClient *http.Client
}
type SupportedBackend string
const (
	APIBackend SupportedBackend = "api"
	APIURL string = "https://api.stripe.com/v1"
	UploadsBackend SupportedBackend = "uploads"
	UploadsURL string = "https://uploads.stripe.com/v1"
)
type Backends struct {
	API, Uploads Backend
	mu           sync.RWMutex
}
type stripeClientUserAgent struct {
	Application     *AppInfo `json:"application"`
	BindingsVersion string   `json:"bindings_version"`
	Language        string   `json:"lang"`
	LanguageVersion string   `json:"lang_version"`
	Publisher       string   `json:"publisher"`
	Uname           string   `json:"uname"`
}
var Key string
var LogLevel = 2
var Logger Printfer
type Printfer interface {
	Printf(format string, v ...interface{})
}
func init() {
	Logger = log.New(os.Stderr, "", log.LstdFlags)
	initUserAgent()
}
var appInfo *AppInfo
var httpClient = &http.Client{Timeout: defaultHTTPTimeout}
var backends Backends
var encodedStripeUserAgent string
var encodedUserAgent string