【问题标题】:Swift PayPal MassPay post call fails. can anybody point me in the right directionSwift PayPal MassPay 后调用失败。谁能指出我正确的方向
【发布时间】:2016-06-10 10:47:07
【问题描述】:

此代码预计将使用 MassPay 在 PayPal 中进行支付。它失败了,我没有收到 PayPal 的回复告诉我发生了什么。有人能指出我正确的方向吗?

    let postsEndpoint: String = "https://api-3t.sandbox.paypal.com/nvp"
    var postsUrlRequest = NSMutableURLRequest(URL: NSURL(string: postsEndpoint)!)

    postsUrlRequest.HTTPMethod = "POST"

    let paymentDict = ["USER" : "example.mydomain.com",
    "PWD" : "PQDBVQXJYH4***",
    "SIGNATURE" : "A9pEq0L3-2vjFoem1ajRi-b-0nWBAkujmPM.O5dJ9u-m7Vf***",
    "METHOD" : "MassPay",
    "VERSION" : "93",
    "RECEIVERTYPE" : "EmailAddress",
    "CURRENCYCODE" : "USD",
    "EMAILSUBJECT" : "First payment test form swift",
    "L_AMT0" : 1.25,
    "L_EMAIL0" : "exampla@gmail.com",
    "L_NOTE0" : "first test from swift",
    "L_UNIQUEID0" : "KS1946-3"]

    let newPost: NSDictionary = paymentDict


    do {
      let jsonPost = try NSJSONSerialization.dataWithJSONObject(newPost, options: [])
      postsUrlRequest.HTTPBody = jsonPost
      let config = NSURLSessionConfiguration.defaultSessionConfiguration()
      let session = NSURLSession(configuration: config)

      let createTask = session.dataTaskWithRequest(postsUrlRequest, completionHandler: {
        (data, response, error) in
        guard let responseData = data else {
          print("Error: did not receive data")
          return
        }
        guard error == nil else {



      })
      createTask.resume()
    } catch {
      print("Error: cannot create JSON from post")
    }

  }

【问题讨论】:

  • 它是如何失败的?你得到了什么回应(即使你认为它毫无意义)?
  • response Optional( { URL: api-3t.sandbox.paypal.com/nvp } { 状态码: 200, headers { Connection = close; "Content-Length" = 146; "Content-Type" = " text/plain; charset=utf-8"; Date = "Sat, 27 Feb 2016 12:31:39 GMT"; "HTTP_X_PP_AZ_LOCATOR" = "sandbox.slc"; "Paypal-Debug-Id" = 9bbe9ff381c86; Server = Apache ; "Set-Cookie" = "X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dappdispatcher_apit%26TIME%3D731369814; domain=.paypal.com; path=/; Secure; HttpOnly, X -PP-SILOVER"; } })
  • 数据:可选()

标签: json swift paypal masspay


【解决方案1】:

使用我的应用程序中的 swift 将 MassPay 发布到 PayPal 的工作代码

func payPalMassPayOutMessage() {

    let postsEndpoint: String = "https://api-3t.sandbox.paypal.com/nvp"
    let postsUrlRequest = NSMutableURLRequest(URL: NSURL(string: postsEndpoint)!)
    postsUrlRequest.HTTPMethod = "POST"

    let paymentString = "USER=alex***.mydomain&PWD=PQDBVQXJYH4****&SIGNATURE=A9pEq0L3-2vjFoem1ajRi-b-0nWBAkujmPM.O5dJ9u-m7VfmkDJg****&METHOD=MassPay&VERSION=93&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&EMAILSUBJECT=First payment test form swift&L_AMT0=1.25&L_EMAIL0=lguerra10@gmail.com"

        do {

          postsUrlRequest.HTTPBody = paymentString.dataUsingEncoding(NSUTF8StringEncoding)

      let config = NSURLSessionConfiguration.defaultSessionConfiguration()
      let session = NSURLSession(configuration: config)

      let createTask = session.dataTaskWithRequest(postsUrlRequest, completionHandler: {
        (data, response, error) in
        guard let responseData = data else {
          print("Error: did not receive data")
          return
        }
        guard error == nil else {
          print("error calling post ")
          print(error)
          return
        }



        guard let dataSring = NSString(data: data!, encoding: NSUTF8StringEncoding) else {
          print("error parse dataString ")
          return
        }
        print("response data \(dataSring)")

    })
      createTask.resume()
    } catch {
      print("Error: cannot encode paymentString")
    }

  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2011-10-28
    • 1970-01-01
    • 2014-12-26
    • 2014-08-27
    相关资源
    最近更新 更多