Revision history for WWW-PayPal

0.002     2026-04-17 02:45:51Z
    - WWW::PayPal::API::Orders: new checkout() convenience method — the
      modern Express Checkout one-liner. Builds purchase_units +
      application_context from flat args (amount, currency, return_url,
      cancel_url, + optional brand_name, locale, items[], shipping,
      invoice_id, custom_id, soft_descriptor, description, reference_id,
      shipping_preference, user_action). Auto-fills amount.breakdown.item_total
      when items are present.
    - WWW::PayPal: new js_sdk_url() and js_sdk_script_tag() helpers for
      dropping the PayPal JS SDK into a Catalyst/Mojolicious/etc. template.
      Supports currency, intent, locale, components, disable_funding /
      enable_funding, vault (for subscription buttons), merchant_id,
      buyer_country (sandbox), debug. HTML output is properly escaped.

0.001     2026-04-15 19:41:41Z
    - Initial release
    - WWW::PayPal client with OAuth2 client_credentials token caching
      and sandbox/live switch
    - WWW::PayPal::Role::HTTP: JSON request wrapper with transparent
      bearer-token acquisition and refresh
    - WWW::PayPal::Role::OpenAPI: operationId dispatch against cached
      operation tables (pre-computed; no runtime spec parsing)
    - WWW::PayPal::API::Orders (Checkout / Orders v2):
        orders.create, orders.get, orders.patch, orders.confirm,
        orders.authorize, orders.capture
    - WWW::PayPal::API::Payments (Payments v2):
        captures.get, captures.refund, refunds.get,
        authorizations.get, authorizations.capture, authorizations.void
    - WWW::PayPal::Order entity with approve_url, payer_email,
      payer_name, payer_id, capture_id, fee_in_cent, total, currency
      (covers the amigaevent / ExpressCheckout replacement surface)
    - WWW::PayPal::Capture and WWW::PayPal::Refund entities
    - WWW::PayPal::API::Products (Catalogs v1):
        catalogs.products.create, .list, .get, .patch
    - WWW::PayPal::API::Plans (Billing Plans v1):
        billing.plans.create, .list, .get, .patch, .activate, .deactivate
        plus create_monthly(product_id, price, currency, trial_days)
        convenience constructor
    - WWW::PayPal::API::Subscriptions (Billing Subscriptions v1):
        billing.subscriptions.create, .get, .patch, .revise, .suspend,
        .activate, .cancel, .capture, .transactions
    - WWW::PayPal::Product, WWW::PayPal::Plan, WWW::PayPal::Subscription
      entities (subscription exposes approve_url, status, subscriber_email/
      _name, next_billing_time, last_payment_amount, plus suspend/activate/
      cancel lifecycle methods)
    - examples/buy_demo.pl: end-to-end Orders v2 Mojolicious::Lite demo
    - examples/subscribe_demo.pl: end-to-end Subscriptions demo (auto-creates
      product + monthly plan on first run, prints IDs for reuse)
