{"id":31144271,"url":"https://github.com/zeezide/fscheckoutsheet","last_synced_at":"2025-09-18T14:38:34.586Z","repository":{"id":63921269,"uuid":"268091200","full_name":"ZeeZide/FSCheckoutSheet","owner":"ZeeZide","description":"A WKWebView wrapper that handles interaction w/ a FastSpring checkout form","archived":false,"fork":false,"pushed_at":"2021-05-10T15:29:22.000Z","size":26,"stargazers_count":21,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-16T15:10:35.082Z","etag":null,"topics":["fastspring","store","swift"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZeeZide.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":"2020-05-30T14:03:08.000Z","updated_at":"2024-01-27T12:36:19.000Z","dependencies_parsed_at":"2023-01-14T14:15:34.007Z","dependency_job_id":null,"html_url":"https://github.com/ZeeZide/FSCheckoutSheet","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ZeeZide/FSCheckoutSheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FFSCheckoutSheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FFSCheckoutSheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FFSCheckoutSheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FFSCheckoutSheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZeeZide","download_url":"https://codeload.github.com/ZeeZide/FSCheckoutSheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FFSCheckoutSheet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275782009,"owners_count":25527503,"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-09-18T02:00:09.552Z","response_time":77,"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":["fastspring","store","swift"],"created_at":"2025-09-18T14:38:32.848Z","updated_at":"2025-09-18T14:38:34.565Z","avatar_url":"https://github.com/ZeeZide.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FSCheckoutSheet\n\nA WKWebView wrapper that handles interaction w/ a [FastSpring](https://fastspring.com)\ncheckout form.\nFastSpring is an online store provider, useful for selling digital products. For example\nMac applications outside of Apple's Mac App Store.\n\nThis package is only dealing with the actual FastSpring checkout process,\nit doesn't provide any In-App store parts.\nTo see it in a live app, download [Shrugs.app](https://shrugs.app).\n\nInspired by \n[Make Money Outside the Mac App Store](https://christiantietze.de/books/make-money-outside-mac-app-store-fastspring/).\nThis code doesn't require a \"classic\" FastSpring store, but uses the regular one.\nIt uses the \n[Store Builder Library](https://fastspring.com/branded-checkout/store-builder-library/)\nto configure the checkout,\nand scans the result for licenses after a successful checkout.\n\n### Usage\n\nThe package provides a single NSViewController used for checkout: \n`FastSpringCheckoutVC`.\n\n```swift\nlet vc = FastSpringCheckoutVC()\nvc.checkoutProduct(\"soy-for-community-slacks\",\n                   in: \"zeezide.onfastspring.com\") {\n    licenseKeys in\n\n    for licenseKey in licenseKeys {\n        print(\"User\",   licenseKey.name,\n              \"bought\", licenseKey.sku,\n              \"code:\",  licenseKey.code)\n    }\n}\n\nself.presentAsSheet(vc)\n```\n\nNote: Currently this is only reporting CocoaFob licenses.\n\nDon't forget to enable client network connections if your hosting app is sandboxed!\nOtherwise you'll just see the spinner or a white background.\n\n#### Import Package\n\nThe Package URL is: https://github.com/ZeeZide/FSCheckoutSheet.git,\ncan be added to your Xcode project.\n\n\n#### Demo Application\n\nThe Demo folder contains a demo application for the sheet.\nConfigure your store (e.g. a test store) in the `Configuration.swift` file, \nto play with the panel.\nBy default it is configured to access the live [Shrugs.app](https://shrugs.app) store,\nso careful, what you buy is what you buy :-)\n\nLooks like this:\n\n\u003ccenter\u003e\n  \u003cimg src=\"https://zeezide.de/img/fscheckoutsheet/demoapp-start-sized.png\"\u003e\n\u003c/center\u003e\n\u003ccenter\u003e\n  \u003cimg src=\"https://zeezide.de/img/fscheckoutsheet/demoapp-sheet-sized.png\"\u003e\n\u003c/center\u003e\n\n### Who\n\nFSCheckoutSheet is brought to you by [ZeeZide](https://zeezide.de).\nWe like feedback, GitHub stars, cool contract work, \npresumably any form of praise you can think of.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeezide%2Ffscheckoutsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeezide%2Ffscheckoutsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeezide%2Ffscheckoutsheet/lists"}