Как получить ответ после интеграции UPI с помощью гиперссылки

В моем iOS-приложении мне нужно принимать платежи от пользователя. Я использую UPI для того же. Я следовал следующему документу, предоставленному UPI

http://www.npci.org.in/documents/UPI-Linking-Specs-ver-1.1_draft.pdf

Я создал диплинк, как указано в документе. UIApplication.shared.open используется для открытия URL-адреса DeepLink, чтобы в моем телефоне было установлено любое установленное приложение PSP (поставщик платежных услуг) (например, PhonePe, BHIM и т. д.)

func payButtonClicked() {

        guard let urlString = "upi://pay?pa=samplevpa@ybl&pn=Sample Name&am=1&cu=INR".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
            else {
                return
            }

        guard let url = URL(string: urlString) else {
            return
        }

        if !UIApplication.shared.canOpenURL(url) {
            print("url cannot be opened")
            return
        }

        UIApplication.shared.open(url, options: [:], completionHandler: { (success) in

            print(success)

        })

    }

Я зарегистрировал свое приложение с пользовательскими схемами URL и добавил схему upi для ApplicationQueriesScheme в файл plist.

<array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>SampleApp</string>
            </array>
            <key>CFBundleURLName</key>
            <string>com.company.SampleApp</string>
        </dict>
    </array>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>upi</string>
    </array>

Он открывает приложение PSP, и я могу совершить транзакцию. Проблема в том, что я не могу получить ответ от приложения PSP. Нет метода обратного вызова для UIApplication.shared.open метод. Мне нужно получить статус транзакции обратно из приложения PSP и показать статус пользователю. Любая помощь приветствуется

4 ответа

В соответствии с приведенным ниже рабочим процессом вам необходимо установить связь с Payer / Payee PSP, чтобы получать уведомления о ваших платежах. В вашем сценарии вам необходимо обратиться в PSP вашего банка, чтобы получить уведомление о квитанции об оплате в ваши счета.

Я не видел способа получения уведомления отдельным инициатором.

Не стесняйтесь поправлять меня.

Linking Спецификация NPCI UPI утверждает , что параметр URL , используемый в линии оплаты для информационных целей , которые платежные приложения могут использовать , чтобы предоставить дополнительную информацию для плательщика при нажатии на ссылку.

Ссылка должна отображать детали транзакции только продавца или стороны, инициировавшей транзакцию.

Он не предназначен для использования в качестве URL-адреса обратного вызова или веб-ловушки для завершения транзакции.

Вы можете использовать параметр url, чтобы передать URL вашего веб-сайта с помощью метода get с идентификатором заказа или идентификатором платежа в качестве параметра. Как только платеж будет успешным, провайдеру UPI предлагается перейти по URL-адресу. Целью URL-адреса должно быть постоянное обновление статуса транзакции и отправка конечному пользователю сообщения электронной почты или SMS со статусом транзакции.

Не пробовал, но в документе упоминалось о параметре url, при нажатии которого мы должны показывать детали транзакции пользователю.

При щелчке это должен быть URL-адрес, предоставляющий клиенту дополнительные детали транзакции, такие как полные сведения о счете, копия счета, копия заказа, информация о билете и т. Д. Это также можно использовать для доставки цифровых товаров, таких как mp3-файлы и т. Д. После оплаты.

Мы могли бы отправить URL со схемой URL, которая перенаправляет на приложение, или универсальную ссылку, которую может обработать наше приложение.

Опять же, я не пробовал это, поэтому я не знаю, работает ли это так, как я думаю, или это точно решит вашу проблему.

https://www.npci.org.in/sites/all/themes/npcl/images/PDF/UPI_Linking_Specs_ver_1.5.1.pdf

Другие вопросы по тегам