{"id":32324406,"url":"https://github.com/brightec/3dsecureview","last_synced_at":"2026-02-20T23:02:17.232Z","repository":{"id":56924222,"uuid":"129224457","full_name":"brightec/3DSecureView","owner":"brightec","description":null,"archived":false,"fork":false,"pushed_at":"2019-04-16T13:49:07.000Z","size":10,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-23T13:04:05.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brightec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-12T09:11:29.000Z","updated_at":"2022-10-22T17:42:01.000Z","dependencies_parsed_at":"2022-08-21T05:20:50.094Z","dependency_job_id":null,"html_url":"https://github.com/brightec/3DSecureView","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/brightec/3DSecureView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightec%2F3DSecureView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightec%2F3DSecureView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightec%2F3DSecureView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightec%2F3DSecureView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brightec","download_url":"https://codeload.github.com/brightec/3DSecureView/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightec%2F3DSecureView/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29667119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-23T13:04:02.221Z","updated_at":"2026-02-20T23:02:17.223Z","avatar_url":"https://github.com/brightec.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"100\" src=\"https://github.com/brightec/.github/blob/master/brighteclogo2018.svg\"\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\n# ThreeDSecureView\n\nThreeDSecureView is primarily a WKWebView that handles the 3DSecure payment process by sending a POST request to the provided card issuer URL with the MD and PaReq parameters set. The WKWebView then intercepts the POST response from the card issuer, extracts the MD and PaRes values and passes them back to your app.\n\n## Requirements\n\n - iOS 9.0+\n - Swift 4.0\n\n## Installation\n\n### CocoaPods\n\n    pod 'ThreeDSecureView', '~\u003e 1.0.0'\n\n## Usage\n\n### Easy\n\nThe easiest way to use ThreeDSecureView is to instantiate ThreeDSecureViewController and present it in a UINavigationController.\n\n    let config = ThreeDSecureConfig(md: \"YOUR MD\", paReq: \"YOUR PAREQ\", cardUrl: \"YOUR CARD URL\")\n    let viewController = ThreeDSecureViewController(config: config)\n    viewController.delegate = self // Implement ThreeDSecureViewDelegate\n\n    let navController = UINavigationController(rootViewController: viewController)\n    present(navController, animated: true, completion: nil)\n\nHandle the callbacks:\n\n    extension YourViewController: ThreeDSecureViewDelegate {\n\n        func threeDSecure(view: ThreeDSecureView, md: String, paRes: String) {\n            // Handle success here\n        }\n\n        func threeDSecure(view: ThreeDSecureView, error: Error) {\n            // Handle errors here\n        }\n\n    }\n\n### Advanced\n\nIf you don't want to use the provided UIViewController, you can just instantiate ThreeDSecureView directly, add it to your view hierarchy and call start3DSecure() yourself.\n\n## License\n\nSee [license](LICENSE)\n\n## Author\n\nThis repo is maintained by the [Brightec](https://www.brightec.co.uk/) team\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightec%2F3dsecureview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrightec%2F3dsecureview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightec%2F3dsecureview/lists"}