我正在将Payu与Swift语言集成到iOS应用中。由于Payu没有提供iOS SDK和文档,因此我使用的链接是Integrating PayU Money Gateway iOS Swift和How to integrate PayU Money in swift。但是我在两个集成中都面临着相同的问题。
问题:[NSURL init]已调用;这将导致一个带有空URL字符串的NSURL实例。请改用已记录的NSURL初始化方法之一(initWithString:,initFileURLWithPath:等)。此消息仅显示一次。
我正在使用的代码(来自链接1):
import UIKit
class ViewController: UIViewController {
@IBAction func onTapBtnPay(_ sender: UIButton) {
continueWithCardPayment()
createRequest.createRequest(withPaymentParam: paymentParamForPassing,forPaymentType: PAYMENT_PG_PAYU_MONEY , withCompletionBlock: {(request, postParam , error) in
if error == nil {
print("Success")
}
else
{
print("Error data : \(error.debugDescription)")
print("Failure")
}
})
}
var paymentParamForPassing = PayUModelPaymentParams()
var webServiceResponse: PayUWebServiceResponse = PayUWebServiceResponse()
var createRequest: PayUCreateRequest = PayUCreateRequest()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func continueWithCardPayment() {
paymentParamForPassing.key = "0MQaQP"
paymentParamForPassing.transactionID = "Ywism0Q9XC88qvy";
paymentParamForPassing.amount = "10.0"
paymentParamForPassing.productInfo = "Nokia";
paymentParamForPassing.firstName = "Ram";
paymentParamForPassing.email = "email@testsdk1.com";
paymentParamForPassing.userCredentials = "ra:ra";
paymentParamForPassing.phoneNumber = "1111111111";
paymentParamForPassing.surl = "https://www.google.com/";
paymentParamForPassing.furl = "https://www.facebook.com/";
paymentParamForPassing.udf1 = "u1";
paymentParamForPassing.udf2 = "u2";
paymentParamForPassing.udf3 = "u3";
paymentParamForPassing.udf4 = "u4";
paymentParamForPassing.udf5 = "u5";
paymentParamForPassing.environment = ENVIRONMENT_MOBILETEST
paymentParamForPassing.offerKey = "offertest 1411";
paymentParamForPassing.hashes.paymentHash = "ade84bf6dd9da35d0aab50a5bf61d6272ab0fc488b361b65c66745054aacf1900e3c60b5022d2114bae7360174ebcb3cd7185a5d472e5c99701e5e7e1eccec34";
paymentParamForPassing.hashes.paymentRelatedDetailsHash = "915299224c80eff0eb2407b945a5087556292f58baca25fd05a0bceb6826aa9eb531810001dd4b4677dd928dd60d39eecf843b2189f213f9bb82c5a9483e3aac";
paymentParamForPassing.hashes.vasForMobileSDKHash = "5c0314c2781876f7e0a53676b0d08e1457dafe904d2d15d948626b57409538d51093eef4f15c792b1b9651be7b5659efdd45926e43a1145d68cea094687011ca";
paymentParamForPassing.hashes.deleteUserCardHash = "03e10e892005755f91061121036fb1b10f46202b4138d182f153c5de5c7fd44930ed94b32fac230e59bac1e4ca123aca3297e4b9d25024bf13237db9721fec1a";
paymentParamForPassing.hashes.offerHash = "1e99fdb59bd91c1a85624104c0fcfae34d7fcb850dd17a0b75e7efe49857d15fdefc47dd0d86ca34cbc3a8b580839aea6341a573e4e60dc1ddcf7ecc32bf9cae";
}
}
我正在使用的另一个代码(来自链接2)是:
import UIKit
class ViewController: UIViewController {
@IBAction func onTapBtnPay(_ sender: UIButton) {
continueWithCardPayment()
}
let paymentParam: PayUModelPaymentParams = PayUModelPaymentParams()
var hashes :PayUModelHashes = PayUModelHashes()
// let PUSAhelper:PUSAHelperClass = PUSAHelperClass()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func continueWithCardPayment() {
paymentParam.key = "smsplus"
paymentParam.transactionID = "umangtxn123"
paymentParam.amount = "100.0"
paymentParam.productInfo = "Nokia"
paymentParam.surl = "https://www.payumoney.com/mobileapp/payumoney/success.php"
paymentParam.furl = "https://www.payumoney.com/mobileapp/payumoney/failure.php"
paymentParam.firstName = "Umang"
paymentParam.email = "umangarya336@gmail.com"
paymentParam.environment = ENVIRONMENT_MOBILETEST
paymentParam.udf1 = "udf1"
paymentParam.udf2 = "udf2"
paymentParam.udf3 = "udf3"
paymentParam.udf4 = "udf4"
paymentParam.udf5 = "udf5"
paymentParam.offerKey = ""
// Set this property if you want to give offer:
paymentParam.userCredentials = ""
PUSAHelperClass.generateHash(fromServer: self.paymentParam) { (hashes, errorString) in
self.hashes = hashes ?? PayUModelHashes()
self.paymentParam.hashes = hashes
self.callPaymentGateway()
}
}
func callPaymentGateway() {
let webServiceResponse :PayUWebServiceResponse = PayUWebServiceResponse()
webServiceResponse.getPayUPaymentRelatedDetail(forMobileSDK: paymentParam) { (paymentDetail, errString, extraParam) in
if errString == nil {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let payOptionVC = storyboard.instantiateViewController(withIdentifier: "PUUIPaymentOptionVC") as! PUUIPaymentOptionVC
payOptionVC.paymentParam = self.paymentParam
payOptionVC.paymentRelatedDetail = paymentDetail
DispatchQueue.main.async {
NotificationCenter.default.addObserver(self, selector: #selector(self.paymentResponseReceived(notify:)), name: NSNotification.Name(rawValue: kPUUINotiPaymentResponse), object: nil)
self.navigationController?.pushViewController(payOptionVC, animated: true)
}
}
}
else{
print("Failed to proceed for payment : \(errString)")
}
}
}
@objc func paymentResponseReceived(notify:NSNotification) {
print(notify)
}
}