{"id":29020263,"url":"https://github.com/webdna/commerce-opayo","last_synced_at":"2026-02-21T22:32:22.552Z","repository":{"id":45353612,"uuid":"371035943","full_name":"webdna/commerce-opayo","owner":"webdna","description":"Opayo payment gateway for Craft Commerce","archived":false,"fork":false,"pushed_at":"2025-06-05T07:49:23.000Z","size":55,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-07T03:52:21.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdna.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-05-26T13:02:46.000Z","updated_at":"2024-05-10T15:53:27.000Z","dependencies_parsed_at":"2024-03-05T16:57:50.721Z","dependency_job_id":"38968fd5-fc7a-4303-ba20-9bad5f431bc8","html_url":"https://github.com/webdna/commerce-opayo","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":0.08695652173913049,"last_synced_commit":"fd559f1ab13fdecf933bfdd5b59830835a6beaf4"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/webdna/commerce-opayo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdna%2Fcommerce-opayo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdna%2Fcommerce-opayo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdna%2Fcommerce-opayo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdna%2Fcommerce-opayo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdna","download_url":"https://codeload.github.com/webdna/commerce-opayo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdna%2Fcommerce-opayo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29695781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T18:18:25.093Z","status":"ssl_error","status_checked_at":"2026-02-21T18:18:22.435Z","response_time":107,"last_error":"SSL_read: 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-06-26T01:04:57.995Z","updated_at":"2026-02-21T22:32:22.536Z","avatar_url":"https://github.com/webdna.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"./src/icon.svg\" width=\"100\" height=\"100\" alt=\"Opayo for Craft Commerce icon\"\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eOpayo for Craft Commerce\u003c/h1\u003e\n\nThis plugin provides a [Opyao](https://www.opayo.co.uk/) integration for [Craft Commerce](https://craftcms.com/commerce).\n\n## Requirements\n\nThis plugin requires Craft 3.6 and Craft Commerce 3.3 or later.\n\n## Installation\n\nYou can install this plugin from the Plugin Store or with Composer.\n\n#### From the Plugin Store\n\nGo to the Plugin Store in your project’s Control Panel and search for Opayo for Craft Commerce”. Then click on the “Install” button in its modal window.\n\n#### With Composer\n\nOpen your terminal and run the following commands:\n\n```bash\n# go to the project directory\ncd /path/to/my-project.test\n\n# tell Composer to load the plugin\ncomposer require craftcms/commerce-opayo\n\n# tell Craft to install the plugin\n./craft install/plugin commerce-opayo\n```\n\n## Setup\n\nTo add an Opayo payment gateway, go to Commerce → Settings → Gateways, create a new gateway.\n\n\u003e **Tip:** The Vendor, Integration Key and Integration Password gateway settings can be set to environment variables. See [Environmental Configuration](https://docs.craftcms.com/v3/config/environments.html) in the Craft docs to learn more about that.\n\n### Using the legacy basket format\n\nExample implementation\n\n```twig\n\u003cform method=\"POST\" id=\"opayo-form\"\u003e\n       {{ csrfInput() }}\n       {% set gateway = craft.commerce.gateways.getGatewayByHandle('opayo') %} \n       \u003cscript src=\"{{ gateway.getJs() }}\"\u003e\u003c/script\u003e\n       \u003cinput type=\"hidden\" name=\"nonce\"\u003e\n       \u003cinput type=\"hidden\" name=\"sessionKey\" value=\"{{ gateway.token }}\"\u003e\n       \n       \u003cinput type=\"text\" id=\"name\" value=\"\" autocomplete=\"off\" required\u003e\n       \u003cinput type=\"text\" id=\"cardnumber\" value=\"\" autocomplete=\"off\" required\u003e\n       \u003cinput type=\"text\" id=\"expiry\" placeholder=\"MMYY\" value=\"\" autocomplete=\"off\" required\u003e\n       \u003cinput type=\"text\" id=\"cvv\" value=\"\" autocomplete=\"off\" required\u003e\n       \n       \u003cbutton type=\"submit\"\u003eSubmit\u003c/button\u003e\n\u003c/form\u003e\n```\n\n```js\nfunction paymentFormSubmit(e) {\n        e.preventDefault();\n        // disable submit button\n        e.target.querySelector('button[type=\"submit\"]').disabled = true;\n        \n        sagepayOwnForm({\n                merchantSessionKey: e.target.querySelector('input[name=\"sessionKey\"]').value\n        }).tokeniseCardDetails({\n                cardDetails: {\n                        cardholderName: e.target.querySelector('[id=\"name\"]').value,\n                        cardNumber: e.target.querySelector('[id=\"cardnumber\"]').value,\n                        expiryDate: e.target.querySelector('[id=\"expiry\"]').value,\n                        securityCode: e.target.querySelector('[id=\"cvv\"]').value,\n                },\n                onTokenised: function(result) {\n                        if (result.success) {\n                                e.target.querySelector('[name=\"nonce\"]').value = result.cardIdentifier;\n                                e.target.removeEventListener('submit', paymentFormSubmit);\n                                e.target.submit();\n                        } else {\n                                alert(result.errors.join(', '));\n                        }\n                }\n        });\n}\ndocument.getElementById('opayo-form').addEventListener('submit', paymentFormSubmit);\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdna%2Fcommerce-opayo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdna%2Fcommerce-opayo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdna%2Fcommerce-opayo/lists"}