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

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

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

Я создал deeplink, как указано в документе. 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 и показать статус пользователю. Любая помощь приветствуется


person Arun    schedule 12.09.2017    source источник
comment
привет, Арун, ваша транзакция успешна? Я пытаюсь выполнить транзакцию из своего приложения для Android, но транзакция всегда не выполняется   -  person Srikanth B    schedule 15.09.2017
comment
Сделка для меня прошла успешно. Моя проблема в том, что я не могу получить ответ. Я не буду знать, заплатил ли пользователь на самом деле или нет   -  person Arun    schedule 15.09.2017
comment
Я использую Cordova и получаю ответ в своем приложении для Android, но не могу вызвать приложение PSP из iOS.   -  person Srikanth B    schedule 15.09.2017
comment
ты нашел какое-нибудь решение? Я не могу вызвать BHIM из iOS, любая помощь приветствуется.   -  person Srikanth B    schedule 08.03.2018
comment
привет, Арун, ты получил ответ от приложения UPI? Я тоже застрял в той же проблеме, что и ты, прокомментировал выше. Я успешно получаю ответ в Android, но не в IOS. если да, то направьте меня. Спасибо   -  person Sumit Kumar    schedule 20.04.2018
comment
Еще нет. Я начал использовать другой платежный шлюз для своего приложения   -  person Arun    schedule 23.04.2018
comment
@codeHunter здесь есть обновления? вы открываете приложение BHIM или звоните с просьбой о сборе средств?   -  person Ranjit    schedule 30.08.2018
comment
@Ranjit для IOS, обновления нет. У меня есть рабочий код для платформы Android. В IOS приложение upi запускается, но не завершает транзакцию и не возвращает ответ.   -  person Sumit Kumar    schedule 30.08.2018
comment
@SrikanthB, пожалуйста, дайте мне знать, как сделать глубокую ссылку на это для IOS в кордове. На самом деле я использую ионный. Я могу получить ответ в android (для Paytm, Google Pay).   -  person sanjay Kumar    schedule 14.11.2018
comment
@sanjay iOS у меня не работает   -  person Srikanth B    schedule 15.11.2018
comment
Любые обновления о том, как совершать транзакцию в iOS с использованием googlepay, paytm и т. Д. И получать детали транзакции. Я мог бы выполнить транзакцию с помощью phonepe, но не с помощью других, и даже с помощью phonepe я не получаю обратный вызов, и поэтому нет статуса транзакции.   -  person Sagar Patil    schedule 02.02.2020
comment
Кто-нибудь получает обратный вызов в iOS после успешных транзакций?   -  person Muzammil    schedule 17.12.2020


Ответы (4)


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

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

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

person Alpesh Patil    schedule 03.05.2021

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

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

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

Рабочий процесс UPI

person Venkateswara Rao    schedule 09.05.2021

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

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

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

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

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

person Swasidhant    schedule 19.04.2018

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

person SURESH KUMAR S    schedule 22.01.2020