How to integrate PayU Money in swift

后端 未结 3 1141
既然无缘
既然无缘 2020-12-17 07:04

I\'m new on swift Can any one help me to Integrate PayU Money in swift.... I am using this sdk: https://github.com/payu-intrepos/Documentations/wiki/8.1-NEW-iOS-Seamless-SD

3条回答
  •  死守一世寂寞
    2020-12-17 07:33

    Here is the solutions will working source code, with all steps

    First of all download framework from this link and follow the installation steps

    https://developer.payumoney.com/ios/

    after completing installation steps of frame work here is the Code

    import this framework

    **

    1)import PlugNPlay 2) import CommonCrypto

    **

    add this function and call it where you need ex like on button or particular events

    func continueWithCardPayment()
    
        {
                 var paymentParam = PUMTxnParam()
                paymentParam.key = "your merhcant key"
                paymentParam.merchantid = " merchant id"
                paymentParam.txnID = "xyz"
                paymentParam.phone = "982412345"
                paymentParam.amount = "500"
                paymentParam.productInfo = "Nokia"
                paymentParam.surl = "https://test.payumoney.com/mobileapp/payumoney/success.php"
                paymentParam.furl = "https://test.payumoney.com/mobileapp/payumoney/failure.php"
                paymentParam.firstname = "john"
                paymentParam.email = "john@john.com"
                paymentParam.environment = PUMEnvironment.test
                paymentParam.udf1 = "udf1"
                paymentParam.udf2 = "udf2"
                paymentParam.udf3 = "udf3"
                paymentParam.udf4 = "udf4"
                paymentParam.udf5 = "udf5"
                paymentParam.udf6 = ""
                paymentParam.udf7 = ""
                paymentParam.udf8 = ""
                paymentParam.udf9 = ""
                paymentParam.udf10 = ""
                paymentParam.hashValue = self.getHashForPaymentParams(paymentParam)
               // paymentParam.offerKey = ""              // Set this property if you want to give offer:
               // paymentParam.userCredentials = ""
    
    
    
                    PlugNPlay.presentPaymentViewController(withTxnParams: paymentParam, on: self, withCompletionBlock: { paymentResponse, error, extraParam in
                        if error != nil {
                            UIUtility.toastMessage(onScreen: error?.localizedDescription)
                        } else {
                            var message = ""
                            if paymentResponse?["result"] != nil && (paymentResponse?["result"] is [AnyHashable : Any]) {
                                print(paymentResponse!)
                                message = "Hello Asad sucess"
                                //                    message = paymentResponse?["result"]?["error_Message"] as? String ?? ""
                                //                    if message.isEqual(NSNull()) || message.count == 0 || (message == "No Error") {
                                //                        message = paymentResponse?["result"]?["status"] as? String ?? ""
                                //                    }
                            } else {
                                message = paymentResponse?["status"] as? String ?? ""
                            }
                            UIUtility.toastMessage(onScreen: message)
                        }
                    })
    
                //PlugNPlay.presentPaymentViewController(withTxnParams: paymentParam, on: self, withCompletionBlock: )
            }
    

    than add this two function of genrating hash & SHA512

    func sha512(_ str: String) -> String {
    
            let data = str.data(using:.utf8)!
            var digest = [UInt8](repeating: 0, count: Int(CC_SHA512_DIGEST_LENGTH))
            data.withUnsafeBytes({
                _ = CC_SHA512($0, CC_LONG(data.count), &digest)
            })
            return digest.map({ String(format: "%02hhx", $0) }).joined(separator: "")
        }
        func getHashForPaymentParams(_ txnParam: PUMTxnParam?) -> String? {
            let salt = "your salt key"
            var hashSequence: String? = nil
            if let key = txnParam?.key, let txnID = txnParam?.txnID, let amount = txnParam?.amount, let productInfo = txnParam?.productInfo, let firstname = txnParam?.firstname, let email = txnParam?.email, let udf1 = txnParam?.udf1, let udf2 = txnParam?.udf2, let udf3 = txnParam?.udf3, let udf4 = txnParam?.udf4, let udf5 = txnParam?.udf5, let udf6 = txnParam?.udf6, let udf7 = txnParam?.udf7, let udf8 = txnParam?.udf8, let udf9 = txnParam?.udf9, let udf10 = txnParam?.udf10 {
                hashSequence = "\(key)|\(txnID)|\(amount)|\(productInfo)|\(firstname)|\(email)|\(udf1)|\(udf2)|\(udf3)|\(udf4)|\(udf5)|\(udf6)|\(udf7)|\(udf8)|\(udf9)|\(udf10)|\(salt)"
            }
    
    
    
            let hash = self.sha512(hashSequence!).description.replacingOccurrences(of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: "")
    
            return hash
        }
    

    run the code now

提交回复
热议问题