X402.Extension adapter advertising the payment-identifier extension.
plug X402.Plug.PaymentGate,
routes: [...],
payment_identifier_cache: MyApp.PaymentCache,
extensions: [{X402.Extensions.PaymentIdentifier.Adapter, required: true}]Every 402 response advertises
X402.Extensions.PaymentIdentifier.extension(required: ...). Validation
of the echoed id, the required rule, the request-fingerprint binding,
and the :x402_payment_id assign are built into X402.Plug.PaymentGate
and apply to the advertisement this adapter produces exactly as they do
to a static extensions: %{"payment-identifier" => ...} route entry.
Summary
Functions
Advertises the extension with the configured required flag.
Validates the adapter options.
Returns "payment-identifier".
Functions
@spec advertise( keyword(), X402.Hooks.RequestContext.t() ) :: map()
Advertises the extension with the configured required flag.
Examples
iex> context = X402.Hooks.RequestContext.new([])
iex> X402.Extensions.PaymentIdentifier.Adapter.advertise([required: true], context)["info"]
%{"required" => true}
Validates the adapter options.
Options
:required(boolean/0) - Whether clients must supply an id (info.required). The default value isfalse.
Examples
iex> X402.Extensions.PaymentIdentifier.Adapter.init([])
{:ok, [required: false]}
iex> {:error, message} = X402.Extensions.PaymentIdentifier.Adapter.init(required: "yes")
iex> message =~ ":required"
true
@spec key() :: String.t()
Returns "payment-identifier".
Examples
iex> X402.Extensions.PaymentIdentifier.Adapter.key()
"payment-identifier"