{"action":"created","issue":{"url":"https://api.github.com/repos/theCrag/website/issues/1841","labels_url":"https://api.github.com/repos/theCrag/website/issues/1841/labels{/name}","comments_url":"https://api.github.com/repos/theCrag/website/issues/1841/comments","events_url":"https://api.github.com/repos/theCrag/website/issues/1841/events","html_url":"https://github.com/theCrag/website/issues/1841","id":56098064,"number":1841,"title":"stripe integration","user":{"login":"scd","id":373058,"avatar_url":"https://avatars.githubusercontent.com/u/373058?v=3","gravatar_id":"","url":"https://api.github.com/users/scd","html_url":"https://github.com/scd","followers_url":"https://api.github.com/users/scd/followers","following_url":"https://api.github.com/users/scd/following{/other_user}","gists_url":"https://api.github.com/users/scd/gists{/gist_id}","starred_url":"https://api.github.com/users/scd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scd/subscriptions","organizations_url":"https://api.github.com/users/scd/orgs","repos_url":"https://api.github.com/users/scd/repos","events_url":"https://api.github.com/users/scd/events{/privacy}","received_events_url":"https://api.github.com/users/scd/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/theCrag/website/labels/1:%20MUST%20BE%20RESOLVED%20FOR%20RELEASE","name":"1: MUST BE RESOLVED FOR RELEASE","color":"e10c02"},{"url":"https://api.github.com/repos/theCrag/website/labels/5:%20Enhancement","name":"5: Enhancement","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"scd","id":373058,"avatar_url":"https://avatars.githubusercontent.com/u/373058?v=3","gravatar_id":"","url":"https://api.github.com/users/scd","html_url":"https://github.com/scd","followers_url":"https://api.github.com/users/scd/followers","following_url":"https://api.github.com/users/scd/following{/other_user}","gists_url":"https://api.github.com/users/scd/gists{/gist_id}","starred_url":"https://api.github.com/users/scd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scd/subscriptions","organizations_url":"https://api.github.com/users/scd/orgs","repos_url":"https://api.github.com/users/scd/repos","events_url":"https://api.github.com/users/scd/events{/privacy}","received_events_url":"https://api.github.com/users/scd/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/theCrag/website/milestones/32","labels_url":"https://api.github.com/repos/theCrag/website/milestones/32/labels","id":450563,"number":32,"title":"Release 42 - profile","description":"IMPROVE UPGRADE PROCESS BY ADDING A PERMANENT ARCHIVE OF DATABASE STATE BEFORE RELEASE\r\n\r\nPRE RELEASE\r\n\r\n  * IS-config","creator":{"login":"brendanheywood","id":187449,"avatar_url":"https://avatars.githubusercontent.com/u/187449?v=3","gravatar_id":"","url":"https://api.github.com/users/brendanheywood","html_url":"https://github.com/brendanheywood","followers_url":"https://api.github.com/users/brendanheywood/followers","following_url":"https://api.github.com/users/brendanheywood/following{/other_user}","gists_url":"https://api.github.com/users/brendanheywood/gists{/gist_id}","starred_url":"https://api.github.com/users/brendanheywood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brendanheywood/subscriptions","organizations_url":"https://api.github.com/users/brendanheywood/orgs","repos_url":"https://api.github.com/users/brendanheywood/repos","events_url":"https://api.github.com/users/brendanheywood/events{/privacy}","received_events_url":"https://api.github.com/users/brendanheywood/received_events","type":"User","site_admin":false},"open_issues":111,"closed_issues":26,"state":"open","created_at":"2013-10-09T08:19:47Z","updated_at":"2015-02-15T13:37:40Z","due_on":"2015-04-13T14:00:00Z","closed_at":null},"comments":59,"created_at":"2015-01-30T23:14:21Z","updated_at":"2015-02-17T21:12:17Z","closed_at":null,"body":"Review stripe capabilities:\r\n - [x] api based payment gateway means we can get fully integrated credit card payments\r\n - [x] we don't need to see credit card details on our server\r\n - [x] multi - currency automatically converted to AUD\r\n - [x] I think payments automatically go to my bank account, which might increase the admin overhead. But I do have an accounting system that can automatically tag transactions.\r\n - [ ] Not sure if we can tag Australian transactions differently (Australian transactions require us to collect GST, whereas OS transactions do not).\r\n - [x] We can create once off payments, create a customer so that they only need their credit card details once and recurring payments based on a plan.\r\n - [x] Stripe has an awsome test mode where you use a test api key and the charges are not really made but otherwise functions normally\r\n\r\nSetup\r\n - [x] Create a stripe account\r\n - [x] Find a perl module\r\n - [x] test script to demonstrate perl module and stripe account works\r\n - [x] install perl module everywhere\r\n - [x] install api keys\r\n\r\nBusiness decisions for supporter program\r\n - [x] Should we totally replace PayPal. I think yes - having options can be confusing as well as increasing our code maintenance load\r\n - [x] Do we want to set up a monthly plan for those willing to provide extra financial support. Maybe, but I don't want to do anything less than $10 per month as the transaction costs become significant. I think we have to pre-create plans as well, or create a plan on-the-fly with the amount they put in.\r\n - [x] Do we want to create people as customers so they only need their credit card once. \r\n\r\nAdvertisers business rules\r\n - [ ] Stripe will be an enabler to redevelop advertisers so that advertising can be a self service.\r\n\r\nSubscriber work flow notes.\r\n * Become a premium supporter page. Credit card form integrated on the page. If payed before show last four digits of previous credit card payment and offer a pay using previous credit card button (check expiry date?, or credit card still valid - possibly an API call ). \r\n * Standard stripe flow is that when somebody submits their credit card details, a piece of javascript intervenes and sends the credit card details to stripe returning a once off token. Upon success we send the token to our server to make the charge (rather then the credit card details).\r\n * We should send the token to the server via our api so that any card errors can be shown on the page without having to reload the page.\r\n * When we make the charge on the server also create a customer. Against the our account store the following additional info - last four digits of credit card, expire date (??? - don't know if we have this), customer id.\r\n\r\nOptional monthly plan\r\n  * allow an optional monthly plan button for those really blown away by thecrag.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/theCrag/website/issues/comments/74754395","html_url":"https://github.com/theCrag/website/issues/1841#issuecomment-74754395","issue_url":"https://api.github.com/repos/theCrag/website/issues/1841","id":74754395,"user":{"login":"scd","id":373058,"avatar_url":"https://avatars.githubusercontent.com/u/373058?v=3","gravatar_id":"","url":"https://api.github.com/users/scd","html_url":"https://github.com/scd","followers_url":"https://api.github.com/users/scd/followers","following_url":"https://api.github.com/users/scd/following{/other_user}","gists_url":"https://api.github.com/users/scd/gists{/gist_id}","starred_url":"https://api.github.com/users/scd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scd/subscriptions","organizations_url":"https://api.github.com/users/scd/orgs","repos_url":"https://api.github.com/users/scd/repos","events_url":"https://api.github.com/users/scd/events{/privacy}","received_events_url":"https://api.github.com/users/scd/received_events","type":"User","site_admin":false},"created_at":"2015-02-17T21:12:17Z","updated_at":"2015-02-17T21:12:17Z","body":"where is here - the link above is a reference to this issue"}}