Perfect Money с помощью Webview - PullRequest
       19

Perfect Money с помощью Webview

0 голосов
/ 05 октября 2018

В своем приложении я использовал Perfect Money через webview, для этого я публикую скрытые параметры методом post.Я получил идеальную страницу с данными денег.Но когда я нажал на кнопку «Сделать платеж», я снова получил ту же страницу.URL-адрес, полученный от платежа, равен https://perfectmoney.is/api/step1.asp/account.asp, поэтому он отображает ту же страницу.При этом я приложил снимок экрана для моего веб-просмотра.Я не могу найти, где я сделал ошибку.борется за последние 3 дня.

Код:

var PayUBaseUrl="https://perfectmoney.is/api/step1.asp"
 func initPayment(){
        let PAYEE_ACCOUNT = perfectmonetArr.username
        let EMarket = "E-Market"
        let track_id = perfectmonetArr.track_id
        let amount = perfectmonetArr.amount
        let frm_sym = perfectmonetArr.frm_sym
        let SUCCESS_URL = "https://myurl/success"
        let PAYMENT_URL = "https://myurl/perfect_ipn"
        let FAILED_URL = "https://myurl/failure"
        let POST = "POST"
        let memo = perfectmonetArr.memo
        var passpharse = perfectmonetArr.passpharse

        //var passpharse = perfectmonetArr.passpharse?.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)
        passpharse = passpharse?.trimmingCharacters(in: .whitespaces)


        let gethash = track_id! + PAYEE_ACCOUNT! + amount! + frm_sym! + passpharse!.trimmingCharacters(in: .whitespacesAndNewlines)
        let digest = MD5(gethash)
        let postStr : String  = "PAYEE_ACCOUNT=\(PAYEE_ACCOUNT!)&PAYEE_NAME=\(EMarket)&PAYMENT_ID=\(track_id!)&PAYMENT_AMOUNT=\(amount!)&PAYMENT_UNITS=\(frm_sym!)&STATUS_URL=\(SUCCESS_URL)&NOPAYMENT_URL=\(FAILED_URL)&SUGGESTED_MEMO=\(memo!)&PAYMENT_URL=\(PAYMENT_URL)&NOPAYMENT_URL_METHOD=\(POST)&PAYMENT_URL_METHOD=\(POST)&V2_HASH=\(digest!)"
        let url = NSURL(string: String.localizedStringWithFormat("%@/step1.asp/_payment", PayUBaseUrl1))
        print("check my url", url!, postStr)
        let request = NSMutableURLRequest(url: url! as URL)
        do {
            DispatchQueue.main.async {
            let postLength = String.localizedStringWithFormat("%lu",postStr.characters.count)
            request.httpMethod = "POST"
            request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Current-Type")
            request.setValue(postLength, forHTTPHeaderField: "Content-Length")
            request.httpBody = postStr.data(using: String.Encoding.utf8)

                self.myWebView.loadRequest(request as URLRequest)
            }
            self.alert.dismiss(withClickedButtonIndex: -1, animated: true)
        } catch {

        }

    }

func MD5(_ string: String) -> String? {
        let length = Int(CC_MD5_DIGEST_LENGTH)
        var digest = [UInt8](repeating: 0, count: length)

        if let d = string.data(using: String.Encoding.utf8) {
            _ = d.withUnsafeBytes { (body: UnsafePointer<UInt8>) in
                CC_MD5(body, CC_LONG(d.count), &digest)
            }
        }[enter image description here][1]

        return (0..<length).reduce("") {
            $0 + String(format: "%02x", digest[$1])
        }
    }

Снимок экрана: https://i.stack.imgur.com/hOEs1.png

...