CondoWebAppRequestPayment

Данный метод позволяет мини-приложению запустить процесс оплаты в интерфейсе родительского приложения. Можно передать один или несколько счетов (invoiceIds) либо уже сформированный multiPaymentId.
Узнать, как создавать и публиковать счета, можно в статье «Работа со счетами».

Платформы

B2B WebB2C WebB2C Cordova

Параметры метода

Метод принимает один из двух вариантов параметров.

Оплата счетов

Имя параметраТип параметраОбязательныйОписание параметра
invoiceIdsArray<string>даМассив идентификаторов счетов для оплаты

Оплата мультиплатежа

Имя параметраТип параметраОбязательныйОписание параметра
multiPaymentIdstringдаID заранее сформированного мультиплатежа

Возвращаемое значение

В случае успешного выполнения вы получите JSON-объект следующего типа:
typescript
type RequestPaymentData = { multiPaymentId: string // ID созданного (или переданного) мультиплатежа success: boolean // Результат оплаты }

Пример использования

typescript
// pages/index.tsx import React, { useCallback } from 'react' import bridge from '@open-condo/bridge' import { Button } from '@open-condo/ui' async function registerInvoice (): Promise<string> { // Создайте и опубликуйте счет на вашем бэкенде, верните его ID const response = await fetch('/api/invoices', { method: 'POST' }) const { invoiceId } = await response.json() return invoiceId } export default function MiniappPage (): React.ReactNode { const handlePayment = useCallback(async () => { const invoiceId = await registerInvoice() bridge.send('CondoWebAppRequestPayment', { invoiceIds: [invoiceId] }).then(({ success, multiPaymentId }) => { if (success) { // Оплата прошла успешно — обновите статус заказа на вашем бэкенде console.log('Платеж выполнен, multiPaymentId:', multiPaymentId) } else { // Пользователь отменил оплату или произошла ошибка console.log('Оплата не завершена') } }).catch((error) => { console.error(error) }) }, []) return ( <Button type='primary' onClick={handlePayment}>Оплатить</Button> ) }