UNPKG

@lexriver/yandex-pay

Version:

A TypeScript client for Yandex Pay API to integrate payment processing in your Node.js applications

172 lines (133 loc) 4.2 kB
# Yandex Pay API A TypeScript/JavaScript client for the Yandex Pay API that helps you easily integrate Yandex Pay into your Node.js applications. ## Documentation This package is based on the [official Yandex Pay API documentation](https://pay.yandex.ru/docs/en/custom/backend/yandex-pay-api/). ## Installation ```bash pnpm add @lexriver/yandex-pay ``` ## Usage ### Initialize the client ```typescript import { YandexPayAPI } from '@lexriver/yandex-pay'; const yandexPay = new YandexPayAPI({ apiKey: 'your-api-key', sandbox: true // set to false for production }); ``` ### Create an order ```typescript const order = await yandexPay.orders.createOrder({ cart: { items: [ { productId: 'product-1', title: 'Product Name', quantity: { count: '1' }, total: '100.00' } ], total: { amount: '100.00' } }, orderId: 'order-123', currencyCode: 'RUB', redirectUrls: { onSuccess: 'https://your-site.com/success', onError: 'https://your-site.com/error' }, availablePaymentMethods: ['CARD'] }); // Redirect user to the payment URL console.log(order.paymentUrl); ``` ### Get order details ```typescript const orderDetails = await yandexPay.orders.getOrder('order-123'); ``` ### Cancel an order ```typescript const cancelResult = await yandexPay.orders.cancelOrder('order-123', { reason: 'Customer canceled' }); ``` ### Refund an order ```typescript const refundResult = await yandexPay.orders.refundOrder('order-123', { amount: '100.00' }); ``` ### Capture (confirm) an order payment ```typescript const captureResult = await yandexPay.orders.captureOrder('order-123', { cart: { // Final cart after possible modifications items: [ { productId: 'product-1', title: 'Product Name', quantity: { count: '1' }, total: '100.00' } ], total: { amount: '100.00' } } }); ``` ### Get operations for an order ```typescript const operations = await yandexPay.operations.getOperations('order-123'); ``` ### Create a subscription ```typescript const subscription = await yandexPay.subscriptions.createSubscription({ subscriptionPlanId: 'plan-123', returnUrls: { onSuccess: 'https://your-site.com/success', onError: 'https://your-site.com/error' } }); // Redirect user to confirmation URL console.log(subscription.confirmationUrl); ``` ### Make a recurring payment ```typescript const recurringPayment = await yandexPay.subscriptions.makeRecurringPayment({ customerSubscriptionId: 'subscription-123', amount: '100.00', purpose: 'Monthly payment' }); ``` ### Get subscription details ```typescript const subscriptionDetails = await yandexPay.subscriptions.getSubscription( 'subscription-123', true // Check if the card is active ); ``` ## API Reference The package provides a type-safe interface to the Yandex Pay API organized into the following services: ### OrderService - `createOrder(data)` - Create a new order - `getOrder(orderId)` - Get order details - `cancelOrder(orderId, data)` - Cancel an order - `refundOrder(orderId, data)` - Refund an order - `refundOrderV2(orderId, data)` - Refund an order (V2 API) - `captureOrder(orderId, data)` - Capture (confirm) an order payment - `rollbackOrder(orderId)` - Rollback (void) an order payment - `submitOrder(orderId, data)` - Submit an order for processing ### OperationService - `getOperation(externalOperationId)` - Get details about a specific operation ### SubscriptionService - `createSubscription(data)` - Create a new subscription - `makeRecurringPayment(data)` - Make a recurring payment for a subscription - `getSubscription(subscriptionId, checkCardActive)` - Get subscription details ## License ISC