Платежный шлюз CFSDK «В запросе отправлен неверный токен» - PullRequest
2 голосов
/ 01 февраля 2020

Я работаю над приложением, в котором мне нужно интегрировать платежный шлюз, и я использую опцию Cashfree платежный шлюз WebView Checkout в соответствии с необходимостью. Это легко реализовать из их документов . Вот как я запускаю SDK:

func initiateCFSDK() {
        let cashfreeVC = CFViewController(params: getPaymentParams(), appId: self.appId, env: self.environmentCF, callBack: self)
        let navVC = UINavigationController(rootViewController: cashfreeVC)
        self.present(navVC, animated: true, completion: nil)
    }

Параметры оплаты:

func getPaymentParams() -> Dictionary<String, String> {
        return [
            "orderId": self.orderId,
            "tokenData" : self.paymentToken,
            "orderAmount": self.paymentValue,
            "customerName": "name",
            "orderNote": "health prodcuts",
            "orderCurrency": "INR",
            "customerPhone": "9876543210",
            "customerEmail": "abc@gmail.com",
            "notifyUrl": "https://test.gocashfree.com/notify"
        ]
    }

Из их документов нам нужно перетащить каркас в проект Xcode и добавить его в Embedded Binaries. Токен, сгенерированный из бэкэнда с использованием orderId и должен передать его в параметрах оплаты.

Проблема 1: Каждый раз, когда я запускаю SDK, выдается сообщение об ошибке: "Неверный токен отправлен в запросе " и печатает следующий результат в методе delegate:

Finished navigating to url https://test.cashfree.com/billpay/checkout/post/submit JSON value : {"orderId":"","referenceId":"","orderAmount":"","txMsg":"Invalid token sent in request","txTime":"","txStatus":"FAILED","paymentMode":"","signature":""}

Ниже приведен скриншот для справки.

enter image description here

Проблема 2: Поскольку я представляю SDK, встроив его в UINavigationController, при нажатии кнопки назад он не может отклонить себя.

Я много недель бьюсь головой об ошибке (Неверный токен), которую не могу устранить. Так что кто-нибудь здесь пробовал и, пожалуйста, посмотрите, что не так? В ожидании решений от SO.

PS: я пытался связаться с их техподдержкой, и каждый раз, когда они просто отправляли ссылку на свои документы.

1 Ответ

1 голос
/ 04 февраля 2020

Я подготовил демонстрационный проект с Ca sh Free SDK, используя Xcode 11.0

Шаг 1

Для генерации токена я использовал в почтальоне

https://test.cashfree.com/api/v2/cftoken/order

с параметрами

{
"orderId":"ORD123456",
"orderAmount":"30",
"orderCurrency":"INR"
}

со следующими заголовками

Content-Type:application/json
X-Client-Id:XXXXXXX
X-Client-Secret:XXXXXX

Шаг 2

Now In code

func initiateCFSDK() {
    let cashfreeVC = CFViewController(params: getPaymentParams(), appId: "xxxxxxxxxxx", env: "TEST", callBack: self)
    self.navigationController?.pushViewController(cashfreeVC, animated: true)
 }
       func getPaymentParams() -> Dictionary<String, String> {
           return [
               "orderId": "ORD123456",
               "tokenData" : "<<TOKEN FROM POSTMAN REQUEST>>",
               "orderAmount": "30",
               "customerName": "name",
               "orderNote": "health prodcuts",
               "orderCurrency": "INR",
               "customerPhone": "9876543210",
               "customerEmail": "abc@gmail.com",
               "notifyUrl": "https://test.gocashfree.com/notify"
           ]
       }

Здесь ничего не изменилось, только что использованная TEST среда и передала appid и токен

Примечания:

  1. убедитесь, что вы используете URL-адрес среды TEST для генерации токена с идентификатором клиента и секретом клиента среды TEST
  2. , также проверьте notifyUrl
  3. Идентификатор заказа должен быть таким же
  4. убедитесь, что вы не используете старые или просроченные токены

Проблема 2: Не пытайтесь представить, просто pu sh этот контроллер :)

Ура! :)

enter image description here

...