카카오 페이 custom_json 값을 넣었을 때 완료버튼을 누르기전 앱으로 이동하는 현상

현재 카카오 페이 API로 미쳐 있습니다. 카카오 페이 API 준비를 호출할 때 완료버튼을 누를 시 이동할 값을 JSONString으로 만들어서 넣고 있습니다. 하지만 이기능은 테스트 결제하기를 누르지 마자 바로 호출되며 앱으로 이동합니다.
결제가 완료가 되지도 않았는데 이동하는 이유가 무엇입니까?? 왜 이런일이 발생하며 올바른 방법은 무엇입니까??

        let url: URL = URL(string: "https://kapi.kakao.com/v1/payment/ready")!
        var kakaoDict = [String:String]()
        kakaoDict["return_custom_url"] = "kakao12345678dferhroj2t34://"
        var kakaoJsonString : String!
        let encoder = JSONEncoder()
        do {
            let jsonData = try encoder.encode(kakaoDict)
            kakaoJsonString = String(data: jsonData, encoding: .utf8)!
            
        } catch _ as NSError {
            
        }
        var paramString : String! = "cid=TC0ONETIME"
        paramString = paramString + "&partner_order_id=partner_order_id"
        paramString = paramString + "&partner_user_id=partner_user_id"
        paramString = paramString + "&item_name=초코파이"
        paramString = paramString + "&quantity=1"
        paramString = paramString + "&total_amount=2200"
        paramString = paramString + "&vat_amount=200"
        paramString = paramString + "&tax_free_amount=0"
        paramString = paramString + "&approval_url=\(global.api)"
        paramString = paramString + "&fail_url=\(global.api)"
        paramString = paramString + "&cancel_url=\(global.api)"
        paramString = paramString + "&custom_json=\(kakaoJsonString!)"
        post(url: url, paramString, encoding: .utf8, completionHandler: { data, response, error in
                guard error == nil && data != nil else {
                    if let err = error {
                       print(err.localizedDescription)
                    }
                    return
                }

                do {
                    let json = try JSONSerialization.jsonObject(with: data!, options: [])
                    print(json)
                    guard let jsonArray = json as? [String: Any] else {
                        return
                    }
                    Log.Debug(jsonArray)
                    guard jsonArray["tid"] as? String != nil else {
                        return
                    }
                    DispatchQueue.main.async {
                        self.transacationId = jsonArray["tid"] as? String
                        let nextUrl : String = jsonArray["ios_app_scheme"] as! String
                        guard let myUrl = URL(string: nextUrl) else {
                            //report invalid URL
                            return
                        }
                        if UIApplication.shared.canOpenURL(myUrl) {
                                UIApplication.shared.open(myUrl, options: [:], completionHandler: { (success) in })
                        }
                    }
                } catch {
                    print(error)
                }
            })

안녕하세요 카카오페이입니다.

카카오페이 결제 준비 flow는 Ready 요청에 대한 응답 결과에 가맹점 결제 환경 별 Redirect URL (PC/mobileWeb/App용) 을 내려드리면 가맹점에서 가맹점 환경에 맞는 URL을 선택하여 호출(-> 사용자 인증 요청)하는 구조로 되어 있습니다.

문의주신 내용은 가맹점 프로그램 소스 상의 이슈로 보여집니다. 해당 부분은 당 사에서 확인이 어려워 답변이 불가한 점 양해 부탁 드립니다.

감사합니다.