title: Integrating PayU Money Gateway iOS Swift
body: <blockquote>
    <p>Working on Xcode 7.1, Swift 2.0</p>
  </blockquote>
  
  <p>I work on Swift and currently trying to integrate PayU Money payment into iOS App (<a href="https://github.com/payu-intrepos/Documentations/wiki/8.1-NEW-iOS-Seamless-SDK-integration" rel="nofollow">following this documentation</a>). </p>
  
  <p>I find it difficult to understand completion block and more the documentation is all in objective C. Can someone help me resolve this issue?</p>
  
  <p>I am not a pro in programming so just wanted to make sure that I am doing the write thing.</p>
  
  <p>Here is my code: </p>
  
  <pre><code>import UIKit
  
  
  class ViewController: UIViewController {
  
  var paymentParamForPassing = PayUModelPaymentParams()
  var webServiceResponse: PayUWebServiceResponse = PayUWebServiceResponse()
  var createRequest: PayUCreateRequest = PayUCreateRequest()
  
  
  
  override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
  
  
  
      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://payu.herokuapp.com/ios_success";
       paymentParamForPassing.FURL =  "https://payu.herokuapp.com/ios_failure";
       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";
  
  
  }
  </code></pre>
  
  <p>I am getting the following warning at "createRequest..." line inside the paymentButtonPressed below</p>
  
  <p>I am getting the following error  </p>
  
  <blockquote>
    <p>Cannot
    convert value of type '(NSMutableURLRequest, String, NSError?) -> ()'
    to expected argument type
    'completionBlockForCreateRequestWithPaymentParam!'</p>
  </blockquote>
  
  <pre><code>@IBAction func paymentButtonPressed(sender: AnyObject) {
      createRequest.createRequestWithPaymentParam(paymentParamForPassing, forPaymentType: PAYMENT_PG_PAYU_MONEY, withCompletionBlock: {(request: NSMutableURLRequest, postParam: String, error: NSError?) in
  
          if error == nil {
              print("Success")
          }
          else {
              print("Fail")
          }
  
      })
  
  }
  
  
  
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  </code></pre>
  
  <p>Anyone know what I am doing wrong?</p>