{"id":38142313,"url":"https://github.com/ibm-hyper-protect/paynow-website","last_synced_at":"2026-01-16T22:51:46.331Z","repository":{"id":52157300,"uuid":"221498977","full_name":"ibm-hyper-protect/paynow-website","owner":"ibm-hyper-protect","description":"Pay Now Website sample application","archived":false,"fork":false,"pushed_at":"2026-01-01T13:38:36.000Z","size":1582,"stargazers_count":8,"open_issues_count":5,"forks_count":18,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-05T00:45:35.352Z","etag":null,"topics":["expressjs","hyper-protect-services","nodejs"],"latest_commit_sha":null,"homepage":"","language":"CSS","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/ibm-hyper-protect.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-11-13T16:04:31.000Z","updated_at":"2025-04-11T13:36:55.000Z","dependencies_parsed_at":"2024-03-23T06:33:04.099Z","dependency_job_id":"626a5204-c326-4fd6-a4bd-4ee415f746a9","html_url":"https://github.com/ibm-hyper-protect/paynow-website","commit_stats":null,"previous_names":["ibm-hyper-protect/hps-paynow-website","ibm-hyper-protect/paynow-website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ibm-hyper-protect/paynow-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibm-hyper-protect%2Fpaynow-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibm-hyper-protect%2Fpaynow-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibm-hyper-protect%2Fpaynow-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibm-hyper-protect%2Fpaynow-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibm-hyper-protect","download_url":"https://codeload.github.com/ibm-hyper-protect/paynow-website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibm-hyper-protect%2Fpaynow-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28486640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T22:47:06.728Z","status":"ssl_error","status_checked_at":"2026-01-16T22:46:52.401Z","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":["expressjs","hyper-protect-services","nodejs"],"created_at":"2026-01-16T22:51:46.204Z","updated_at":"2026-01-16T22:51:46.275Z","avatar_url":"https://github.com/ibm-hyper-protect.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pay Now Website\n\nThe Pay Now Website is a simple application, that presents an interface to make payments.\nThe application shows how sensitive payment related information like e.g. credit card data is used.\nIt is recommended to run this application in a confidential computing environment where PII data in use is protected from malicious actors.\n\nThe website is a node.js Express app, serving\nthe site itself. The payment page has AJAX calls into the\napplication. The application processes these\nRESTful JSON requests and stores the transaction data in memory.\n\nThe application can both be run locally, or in\nthe IBM Cloud, for example in a [IBM Cloud Hyper Protect\nVirtual Server for VPC](https://www.ibm.com/cloud/hyper-protect-virtual-servers).\n\n## Build and Run the Application\n\n### Simple way to run the application\nTo build and run an application container image, \nrun these commands:\n\n```\ndocker build -t paynow .\ndocker run -it -p 8443:8443 paynow\n```\n\n### Run the application with your SSL certificate\nAlternatively, you can create a SSL private key and certificate and pass these to the application:\n\n```\ndocker build -t paynow .\nopenssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt\nCERT=$(base64 -w 0 server.crt)\nKEY=$(base64 -w 0 server.key)\ndocker run -it -p 8443:8443 -e KEY=$KEY -e CERT=$CERT paynow\n```\n\nThe application will use your private key and certificate for SSL.\n\n\n## Test the Application\n\nUse a web browser to navigate to\n[`locahost:8443`](https://localhost:8443) and confirm that the\ndonations homepage loads. (Or, of course, whichever host you're\nrunning it on.)\n\nNavigate to the donations page try out that functionality, driving\nAJAX calls to issue `GET` and `POST` requests.\nYou can view the console to check these network calls are\nfunctioning correctly.\n\nNote: If you do not use your own certificate, your web browser may display a warning about a insecure connection and a invalid certificate, as in this case the application uses a simple self signed certificate for `CN=localhost`.\n\n## Run the Application in Hyper Protect Virtual Server for VPC and validate the attestation record\n\nYou can run the application in [Hyper Protect Virtual Server for VPC](https://cloud.ibm.com/docs/vpc?topic=vpc-about-se). To do so, follow this [tutorial ](https://cloud.ibm.com/docs/vpc?topic=vpc-financial-transaction-confidential-computing-on-hyper-protect-virtual-server-for-vpc).\n\nYou can optionally include the private key and the certificate in the env section of the contract.\n\n### Validate the attestation record\nYou can then download a zip file containing the [attestation record](https://cloud.ibm.com/docs/vpc?topic=vpc-about-attestation) and the signature file from API URL [`https://ip:8443/api/v1/attestation`](https://ip:8443/api/v1/attestation). This zip file contains the attestation record `se-checksums.txt` or `se-checksums.txt.enc` (the latter if you are using an encrypted attestation record) and the signature file `se-signature.bin`.\n\nTo verify the signature, follow these [instructions](https://cloud.ibm.com/docs/vpc?topic=vpc-about-attestation).\n\nTo validate the attestation record, compute the checksum of your contract (you may need to remove a potential trailing EOL character at the end of file `contract.yml` first): \n```\nperl -p -i -e 'chomp if eof' contract.yml\nsha256sum contract.yml\n```\nand compare this checksum to the value for `cidata/user-data` in file `se-checksums.txt`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibm-hyper-protect%2Fpaynow-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibm-hyper-protect%2Fpaynow-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibm-hyper-protect%2Fpaynow-website/lists"}