Проблемы с отсутствующим параметром платежа Paytm в ios Swift - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь интегрировать платежи Paytm в приложение для iOS.Когда я пытаюсь передать параметры в pgtransaction, я получаю сообщение об ошибке с отсутствующим параметром сообщения CUST_ID.Но я передаю этот ключ.Смотрите приведенный ниже код:

func beginPayment()
    {
        productionInstance = productionInstance.createProductionEnvironment()
        let useMobiNumb = userMobileNumber.dropFirst()
        print(useMobiNumb)
        let type :ServerType = .eServerTypeProduction
        let order = PGOrder(orderID: "", customerID: "", amount: "", eMail: "", mobile: "")
        order.params = ["MID": MID,"ORDER_ID": orderId!,"CUST_ID": useMobiNumb,"CHANNEL_ID": "WAP","WEBSITE": "VMartP","TXN_AMOUNT": orderValue!,"INDUSTRY_TYPE_ID": IndustryTypeId,"CHECKSUMHASH": checkSumHash!,"CALLBACK_URL": "https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID=\(String(describing: orderId!))"]
        self.txnController =  self.txnController.initTransaction(for: order) as! PGTransactionViewController
        self.txnController.title = "Paytm Payments"
        self.txnController.setLoggingEnabled(true)
        if(type != ServerType.eServerTypeNone)
        {
            self.txnController.serverType = type;
        }
        else
        {
            return
        }
        self.txnController.merchant = PGMerchantConfiguration.defaultConfiguration()
        self.txnController.delegate = self
        self.navigationController?.pushViewController(self.txnController, animated: true)
    }

И я получаю это сообщение в области отладки:

PGTransactionViewController::initWithTransactionParameters: ["ORDER_ID": "Order_26122018158277", "CHANNEL_ID": "WAP", "INDUSTRY_TYPE_ID": "Retail109", "CALLBACK_URL": "https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID=Optional(\"Order_26122018158277\")", "CUST_ID": "918309909071", "TXN_AMOUNT": "27.00", "WEBSITE": "WEBSTAGING", "MID": "VMartP95907532925453", "CHECKSUMHASH": "YCd9N8GZYfYvyFGlBpdNnnEqMYhtWio2l9z3IjrqW2qsaG3l6ZiO6cP6zNBBZTRNSyePm5WV0/bm7zw77mMIKv45g6TrWPEuWFa8qe3yDSw="]
PGTransactionViewController:loadView
PGTransactionViewController::viewDidLoad
PGTransactionViewController::viewWillAppear
PGTransactionViewController::viewDidAppear
Calling Delegate errorMisssingParameter
Optional(Error Domain=com.paytm.payments Code=-1 "MissingKeys" UserInfo={NSLocalizedRecoveryOptions=(
    OK
), NSLocalizedDescription=MissingKeys, NSLocalizedFailureReason=CUST_ID is/are missing parameters.})

Может кто-нибудь сказать мне, где я допустил ошибку?Спасибо

Ответы [ 2 ]

0 голосов
/ 27 марта 2019
ORDER_ID : long(1553684683)

Из-за этого ключевого слова long мы все сталкиваемся с этой проблемой.Поэтому измените это на String и передайте в SDK.

Пример:

"CUST_ID": "918309909071"
"ORDER_ID" : "1553684683"
0 голосов
/ 02 января 2019
order.params = ["MID": "\(MID)","ORDER_ID": "\(orderId!)","CUST_ID": "\(custID!)","CHANNEL_ID": "WAP","WEBSITE": "VMartP","TXN_AMOUNT": "\(orderValue!)","INDUSTRY_TYPE_ID": "\(IndustryTypeId)","CHECKSUMHASH": "\(checkSumHash!)","CALLBACK_URL": "https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID=" + orderId!]

Понятия не имею, почему SDK Paytm не принимает передачу параметров, как раньше.Когда я попытался передать параметры путем интерполяции, он принял и дал успешный ответ.

...