Какой должна быть интеграция sUrl и fUrl — PayU Money iOS

#php #ios #swift #laravel #payumoney

#php #iOS #swift #laravel #payumoney

Вопрос:

Я успешно интегрировал PayU money mobile sdk. Я хочу, чтобы после завершения транзакции я хотел уведомить свой сервер о состоянии транзакции.

Это можно сделать с помощью txnParam.surl и txnParam.furl . когда я устанавливаю так…

 txnParam.surl = "http://staging.myserver.com/payu-success.php"
txnParam.furl = "http://staging.myserver.com/payu-fail.php"
  

Я получаю недопустимый sUrl в ответ от PayU money mobile sdk и не могу выполнить транзакцию.

Но когда я устанавливаю так…

 txnParam.surl = "https://www.payumoney.com/mobileapp/payumoney/success.php"
txnParam.furl = "https://www.payumoney.com/mobileapp/payumoney/failure.php"
  

Я могу выполнить транзакцию, и я получаю успешный ответ от PayU money. Но как я могу уведомить об этом свой сервер?

Мой код

     let txnParam = PUMTxnParam()
    PlugNPlay.setDisableCompletionScreen(true)

    txnParam.phone = "1111111111"
    txnParam.email = "test@test.com"
    txnParam.amount = "2550.0"
    txnParam.environment = PUMEnvironment.test
    txnParam.firstname = "test test"
    txnParam.key = kMerchentKey

    txnParam.merchantid = "5675943"
    txnParam.txnID = "1234567890"
//        txnParam.surl = "https://www.payumoney.com/mobileapp/payumoney/success.php"
//        txnParam.furl = "https://www.payumoney.com/mobileapp/payumoney/failure.php"
    txnParam.surl = "http://staging.myserver.com/payu-success.php"
    txnParam.furl = "http://staging.myserver.com/payu-fail.php"

    txnParam.productInfo = "Test Product"
    txnParam.udf1 = "ud1"
    txnParam.udf2 = "ud2"
    txnParam.udf3 = "ud3"
    txnParam.udf4 = "ud4"
    txnParam.udf5 = "ud5"
    txnParam.udf6 = ""
    txnParam.udf7 = ""
    txnParam.udf8 = ""
    txnParam.udf9 = ""
    txnParam.udf10 = ""
  

Установка значения хэша, полученного с сервера

 txnParam.hashValue = serverHashValue
  

Представляем контроллер представления PlugNPlay

 PlugNPlay.presentPaymentViewController(withTxnParams: txnParam, on: self) { (response, error, extraParam) in
        print(response as Any)
        print(error as Any)
    }
  

Серверная часть: PHP (фреймворк Laravel)

Ответ №1:

Причиной получения sUrl is invalid является ТИРЕ (-) в URL.

http://staging.myserver.com/payu-success.php .

Как только я установил url, подобный этому…

http://staging.myserver.com/payu_success.php

Это работает изящно.

Но на удивление http://staging.myserver.com/payu-success.php url (с тире) отлично работает на платформе ANDROID. :-O

Но в iOS это давало мне неверный sUrl ответ.

Эта вещь не документирована PayU money

Итак, в конечном счете, самое смешное, что после нескольких часов проб и ошибок, наконец, узнаем, что

НЕ ИСПОЛЬЗУЙТЕ ТИРЕ В URL ПРИ ИНТЕГРАЦИИ PAYU MONEY В IOS: D

Надеюсь, это поможет другим

Комментарии:

1. Как насчет ‘newbackend.hopto.org : 5111/api/ v1/ Payment/ …’ в ios. Он отлично работает в Android, но не в ios.?