{"id":29728604,"url":"https://github.com/azshurith/sharpgateway","last_synced_at":"2025-07-25T02:40:22.729Z","repository":{"id":304806794,"uuid":"1020060138","full_name":"Azshurith/SharpGateway","owner":"Azshurith","description":"SharpGateway is a secure and extensible C# ASP.NET Core REST API wrapper for Authorize.Net designed to handle end-to-end payment processing. It supports authorization, capture, refunds, voids, and full transaction logging with sensitive data masking.","archived":false,"fork":false,"pushed_at":"2025-07-15T09:40:41.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-15T20:53:59.243Z","etag":null,"topics":["asp-net","authorize-net","csharp","payment-gateway"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Azshurith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-15T09:25:01.000Z","updated_at":"2025-07-15T09:40:26.000Z","dependencies_parsed_at":"2025-07-15T22:14:22.423Z","dependency_job_id":"c3f28bef-306a-41d2-9385-5b22b4cae6bc","html_url":"https://github.com/Azshurith/SharpGateway","commit_stats":null,"previous_names":["azshurith/sharpgateway"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Azshurith/SharpGateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azshurith%2FSharpGateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azshurith%2FSharpGateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azshurith%2FSharpGateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azshurith%2FSharpGateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azshurith","download_url":"https://codeload.github.com/Azshurith/SharpGateway/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azshurith%2FSharpGateway/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266945160,"owners_count":24010494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["asp-net","authorize-net","csharp","payment-gateway"],"created_at":"2025-07-25T02:40:18.556Z","updated_at":"2025-07-25T02:40:22.718Z","avatar_url":"https://github.com/Azshurith.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💳 SharpGateway — Authorize.Net Payment Gateway API (ASP.NET Core)\n\n**SharpGateway** is a secure, modular, and production-ready REST API built with ASP.NET Core for integrating [Authorize.Net](https://developer.authorize.net/) payments. It supports full transaction workflows — including authorization, capture, refund, void, and safe structured logging.\n\n---\n\n## ⚙️ Features\n\n- 🔐 Credit card **Authorization Only** \u0026 **Auth + Capture**\n- 🔁 **Capture** of previously authorized transactions\n- 💸 **Refunds** \u0026 **Voids**\n- 📑 Swagger (OpenAPI) support for easy testing\n- 🛡️ Secure request logging (card number, CVV, expiration masked)\n- 🔄 Environment-based config using `.env`\n- 📦 Clean separation of services, models, and controllers\n\n---\n\n## 📁 API Endpoints\n\n| Method | Endpoint          | Description                             |\n|--------|-------------------|-----------------------------------------|\n| POST   | `/api/Authorize`  | Authorize card without capturing funds |\n| POST   | `/api/Charge`     | Authorize + Capture in one step        |\n| POST   | `/api/Capture`    | Capture a previously authorized trans. |\n| POST   | `/api/Refund`     | Refund a previously settled transaction |\n| POST   | `/api/Void`       | Void an unsettled (auth-only) transaction |\n\n---\n\n## 📦 Tech Stack\n\n- **ASP.NET Core 8.0**\n- **Authorize.Net SDK v2.0**\n- **Swashbuckle (Swagger UI)**\n- **DotNetEnv** for `.env` config loading\n- **Microsoft.Extensions.Logging** with safe masking\n\n---\n\n## 🔐 Environment Configuration\n\nYour API credentials should be placed in a `.env` file (never commit this!):\n\n```\nAUTHORIZENET__APILOGINID=your_login_id\nAUTHORIZENET__TRANSACTIONKEY=your_transaction_key\n```\n\n\u003e ✅ Automatically mapped to the `AuthorizeNet` section in your config.\n\n---\n\n## 📄 appsettings.json (safe sample)\n\n```json\n{\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft.AspNetCore\": \"Warning\"\n    }\n  },\n  \"AuthorizeNet\": {\n    \"ApiLoginId\": \"\",\n    \"TransactionKey\": \"\"\n  },\n  \"AllowedHosts\": \"*\"\n}\n```\n\n---\n\n## 🧪 Run the Project\n\n```bash\ndotnet restore\ndotnet build\ndotnet run\n```\n\nNavigate to: [https://localhost:5001/swagger](https://localhost:5001/swagger)\n\n---\n\n## 🔒 Request Logging Safety\n\nSensitive fields like:\n\n- `CardNumber`\n- `CVV`\n- `Expiration`\n\n...are **never logged in plaintext**. They are masked using secure utilities and safe anonymous logging objects.\n\n---\n\n## 🚀 Future Enhancements\n\n- [ ] Support for recurring billing / customer profiles\n- [ ] Webhook listener for Authorize.Net transaction updates\n- [ ] Docker containerization\n- [ ] Multi-environment deployment setup (dev/staging/prod)\n\n---\n\n## 📝 License\n\nMIT © 2025 — Devitrax\n\n---\n\n## 🤝 Contributions\n\nPRs are welcome! Open an issue or fork this repo to contribute improvements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazshurith%2Fsharpgateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazshurith%2Fsharpgateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazshurith%2Fsharpgateway/lists"}