@antelopejs/interface-stripe
v0.0.7
Published
AntelopeJS interface for Stripe payments: payment intents and payment status watchers
Readme
@antelopejs/interface-stripe
The AntelopeJS interface for Stripe payments. You create payment intents tied to your own records, and your code reacts when Stripe reports that they succeed or fail.
Part of AntelopeJS, the TypeScript framework where modules depend on contracts and the application chooses the provider. Built by the team behind AntelopeJS DMS.
What it offers
GetClient()resolves to the project's configured Stripe SDK client.InitializePaymentcreates a payment intent and stores your own identifier, such as an order ID, in its metadata.WaitForPaymentresolves when a payment intent succeeds and rejects when it is canceled.WatchPaymentandWatchAllPaymentscall your callback on every payment intent event, with a flag that tells whether this instance received the webhook.CompletePaymentcharges a chargeable Stripe Source for the amount of a payment intent.
Implementations
| Module | Notes |
| ------------------------------------------------------------ | -------------------------------------------------- |
| @antelopejs/stripe | Configures the client and receives Stripe webhooks |
Install
Add the interface to the module that takes payments:
pnpm add @antelopejs/interface-stripeThen add the implementation to the project:
ajs project modules add @antelopejs/stripeQuick start
import {
InitializePayment,
WatchAllPayments,
} from "@antelopejs/interface-stripe";
declare function markOrderPaid(orderId: string): void;
export async function startCheckout(orderId: string, amountInCents: number) {
const intent = await InitializePayment(orderId, {
amount: amountInCents,
currency: "eur",
payment_method_types: ["card"],
});
return intent.client_secret;
}
WatchAllPayments((orderId, intent, context) => {
if (orderId && context.local && intent.status === "succeeded") {
markOrderPaid(orderId);
}
});orderId is the identifier passed to InitializePayment. Return the client secret to the authenticated payer before you wait for completion, so Stripe.js can confirm the payment. markOrderPaid stands for your own idempotent order update, and its declare line only gives it a type. Handle webhook redelivery even when context.local is true. Configure the Stripe credentials and the webhook endpoint of the implementation before you call these functions.
Documentation
Compatibility
Peer requirement:
| Package | Supported | Tested with |
| ---------------------------- | ---------------- | ----------- |
| @antelopejs/interface-core | >=0.2.4 <1.0.0 | 0.4.0 |
Runtime dependency:
The package depends on the stripe SDK at runtime. dependencies in package.json holds its range. The package declares no @antelopejs/core peer range, so check the requirements of the implementing module too.
Contributing
Read CONTRIBUTING.md before you open a pull request. The local checks are:
pnpm install
pnpm lint
pnpm typecheck
pnpm build