Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payment system - Stripe integration #195

Open
bri25yu opened this issue Mar 15, 2020 · 0 comments
Open

Payment system - Stripe integration #195

bri25yu opened this issue Mar 15, 2020 · 0 comments

Comments

@bri25yu
Copy link
Contributor

bri25yu commented Mar 15, 2020

Context
As of Spring 2014, HKN has a Stripe account (think Paypal or Square). This account is used for companies to pay us for info sessions, career fair tablings, or other services that we provide.
Once a company signs up for one of these services through Indrel (Industrial Relations), Indrel then sends them a link including the amount they’re charging the company (through the URI of the link) that is simply a page with a Stripe API that the company can enter their CC information through.

The following is an example of the pipeline that this runs through. Suppose there’s a company called Sahara that originally was an online bookstore, but now sells a variety of merchandise for online shoppers. The CEO, Jeff B. Zoss, wants to hold a Sahara info session at Berkeley, so he contacts HKN’s Industrial Relations committee. They work out all the logistical details, naming the info session “Shop at Sahara” with an associated cost of $420.69.

In order to charge Mr. Zoss and Sahara, Indrel sends them a link: hkn.eecs.berkeley.edu/transactions/new?amount=42069&description=Shop%20at%20Sahara. The URI first points to the HKN-Rails endpoint “transactions”. Within transactions, we denote that this is a new transaction by using the “new” page. To pass the information of the name and amount of the transaction, we include them as query variables. First, we append ? the denote that the following are query variables, then amount=42069 to pass an amount value of $420.69, and description=Shop%20at%20Sahara to pass in a description of “Shop at Sahara”. The %20 are html identifiers for the space “ “ character.

The new transaction page gives Sahara the ability to securely input their credit card and payment information, which we then pass to the Stripe API (along with the description and payment amount) to charge their bank account. The Stripe API runs in the background (this part is irrelevant, you will not be expected to know how the Stripe API works) to process the transaction. Once the transaction is completed, HKN-Rails redirects Mr. Zoss to the “show” page that tells him that the transaction was successful.

Goal
We want to replicate this functionality from the old website (HKN-Rails) to the new website. At this point, we’re assuming that you’ve walked through the Django tutorial. First, begin research into Stripe’s API. Write up a short piece of documentation on how to interact with Stripe’s API using Django and Python (the quality of this documentation should match the quality of the HKN-Web setup wiki page). Then, implement the same functionality found on the old website into the new website. Finally, submit a PR to hknweb master with your branch!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant