Documentation
¶
Overview ¶
Package client provides an HTTP client with automatic 402 Payment Required handling.
Package client provides the generic HTTP 402 retry transport used by MPP payment methods.
Examples import this package by its bare name. The Tempo charge package uses the alias `charge`, so there is no conflict.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an HTTP client with automatic 402 payment handling.
func (*Client) Do ¶
Do sends an HTTP request, handling 402 responses automatically. If a 402 is received with a WWW-Authenticate: Payment header, it finds a matching method, creates credentials, and retries.
type Method ¶
type Method interface {
// Name returns the method name this handler supports (e.g., "tempo").
Name() string
// CreateCredential creates a payment credential for the given challenge.
CreateCredential(ctx context.Context, challenge *mpp.Challenge) (*mpp.Credential, error)
}
Method is the interface that payment methods must implement for client-side use.
type Option ¶
type Option func(*Client)
Option configures the Client.
func WithHTTPClient ¶
WithHTTPClient sets a custom http.Client.
type Transport ¶
type Transport struct {
// contains filtered or unexported fields
}
Transport is an http.RoundTripper that handles 402 Payment Required responses. It wraps an inner transport and automatically negotiates payment.
func NewTransport ¶
func NewTransport(methods []Method, inner http.RoundTripper) *Transport
NewTransport creates a payment-aware transport.