Beat Censorship With A GoFundMe Alternative Using Paytrace Payment Gateway with Python / Django
Published:By: Kevin from CyberHavenProgramming.com
Free crowdfunding GoFundMe fundraiser alternative with Python and Django
Skip to the Functionality section below, etc, if you just want the details on this program, and how to set all this up.
Anyways, I'd like to introduce my new crowdfunding Go Fund Me alternative web app to anyone reading this. The purpose of it is to be able to have your own crowdfunding capabilities in case people in Silicon Valley or wherever decide to ban you for something they disapprove of. You can test out my app here.
The idea was to just use a different payment gateway / merchant account that has more respect for freedom of speech, since places like Chase bank bans / censors conservatives and other people they disagree with. After some backlash, I heard they gave her the account back, but it's not very promising, and people have to start suing to stop this behavior. They've unfairly screwed me over in the past too. If this is you, you are being unfairly discriminated against. Stop playing games, and start suing them.
Places like GoFundMe, Patreon, Twitter, Facebook, etc., all do the same, and deplatform people they merely disagree with. Milo Yiannopulos, Alex Jones, Laura Loomer, and many others were deplatformed from many of these places too. The people I just mentioned didn't commit any crimes either. Concerning GoFundMe and Laura, they wouldn't even give her a reason why they banned her. But seeing the trend among these companies, it was most likely for differences in politics, and letting their enemy get money for their own cause is a big no-no in their mind.
If I were in GoFundMe's position I wouldn't ban anyone as long as they weren't doing anything illegal. I'd let the people of the world decide whether they want to support something or not, even if it was something offensive, racist etc. The reason why is because when you ban free speech, it's a never ending downward spiral of ancient kings ruling people with an iron fist, ignoring your rights, and having double standards for people with power. Being in "the club" gives you special rights that others don't have. Banning speech also makes war inevitable, and you have to be able to speak freely to stop problems before they begin.
Consider Jesus, and whether you believe he existsed or not isn't the point. The issue is the guy said some things that others didn't like. Same with Socrates, and many others. In Jesus's case, a group of people got the government to murder him for them. So whatever side you're on, what if that was you?? Would you consider that fair?? Murdered for saying a few words that other people disagreed with?? I doubt it. And this problem of others trying to ban free speech and access to commerce has been going on for awhile now in the USA, and it's getting worse. On the left, you have people who claim to be tolerant and good people. They also claim to hate Nazi's, but they adopt the same principles and tactics as them, and literally do to others what Nazi Germany did to people they disagreed with (banned from commerce / doing business, public speaking, etc. - see the links above)... The hypocrisy of these people... I've also heard the other side(s) of the story on WW2, so I don't believe in the mainstream version of events on that matter, but everyone knows the mainstream narrative, and the things the "left" has done are the same as the "right", just that they're worse as of the time I type this.
What if it happened to you???
I can't say I agree with the beliefs of everyone who was banned, but I'd rather have a dangerous freedom than a peaceful slavery. The reality of a "peaceful" slavery is what Venezuela is going through right now, and the countless other times Communism has tried to be implemented, and failed. In those places, you become the ruling class's bitch, you get plundered, and then people have to eat garbage (literally) to survive in Communist countries. When you go into Socialism / slavery, you have to fight your way out of it.
My story on my journey to this point... Notes about the bullshit in the programming world
Skip to the Functionality section below, etc, if you just want the details on this program, and how to set all this up.
Anyways... One day I had a business idea, and I found out that to do it, I had to learn how to make a website, and how to program things custom. But since I didn't have any money, I decided to learn how to do it myself.
At the very beginning, I looked into things like WordPress, and tried to sell things online. I was so confused and intimidated, and eventually shut it down. Because of that, I decided to learn everything from scratch that it was built on (HTML, CSS, and SVG to start with). Usually, no one gets into SVG, nor SVG animations, but I did because I wanted something different from everyone else.
So I got some books on the cheap, and read a bunch of websites to help me out too. And as time went by, I got into more and more things like various programming languages, so I could learn what I finally needed, and the fancy phrase for that was Full Stack Web Development.
I studied all this stuff day everyday for around a year and half, for about 4-16 hours every day. Most of the time I'd wake up and start working. I'd stop only to sleep, use the bathroom, or make my food. I'd eat while learning too.
During that time, I read about twenty 500+ page books, went through a tons of youtube, udemy, and text courses online, and so on. I practiced well beyond anything they taught either, because nobody had direct answers to what I needed, which was me trying to stitch together something custom that no one taught how to do. Therefore, I figured I'd go all out. If I failed at that business idea: at least I gained a new skill.
Some of those things I learned from (particularly the video courses) promised I'd be an expert within 3 months, and would make me super rich real quick...
I spent around 6,000 hours to get to the point where I finallly felt like I had a grasp on full stack web development, but even then I still felt stupid.
During that time, pretty much every day I'd write down another new question that came from some rabbit trail I learned about the day before, which was dependent on the issue at hand.
I got sick of having 50 browser tabs and 5 giant books open all around me, just to figure out some seemingly minor problem that always left me worse off than before. Each rabbit trail led to another 20, and I was never able to stitch things together regardless of all the stuff I studied all day. I was pissed that slick marketing promises like "fRoM zErO tO HeRo!!!1" weren't actually true.
One asshole I tried learning from sold his "CoDiNg bOoTcAmP WhIcH wOuLd MaKe Me aN ExPeRt EaRnInG $100,000 iN 3 MoNtHs!!11 YoU'LL Be sWiMmiNg iN PuSsY bRo!!!1evelen!!11 --- TRUST ME BRO!!!!11", and I came to find out that he was literally about 20-22, was only one step ahead of me at the time, so he was bullshitting his way through everything to make lots of money. He eventually even made $400,000 in a year once from all his coding "eXpErTiSe".
He charged $500 for his course, but I wasn't mad about that. I was mad because he sold it to me and a bunch of others as if it was a product ready to go that we could login to, and start right away. Which it wasn't, because he was literally doing it as he went along. Eventually he told us he was going to have release dates for each new section of the course, one a week. But when we were supposed to be on week 5's videos, he forced everyone to stay on week 2 because no one but me and a few others understood it, and he literally wasn't doing them. I even asked. He also delegated tasks to people who didn't care, nor knew much of what was going on either.
The only thing he really had going for him was a decent camera setup / background, so he looked professional ON CAMERA. He couldn't teach for shit, and nor could anyone else up to this point for that matter. He acted like an expert, talked a good game, promised to fill in all the gaps, said all the magic words I was looking for, that we would be "experts" super fast just like him, and promised to give me the competence I needed to do what I wanted...
But they were only 1 step ahead of the people they were "teaching". And even worse, the only things they taught to that point were nothing more than monkey see, monkey do, and shortcuts that made you more confused than before, which had bugs, and when asking how to debug those bugs, or what X or Y meant, they'd run and couldn't answer... And I can't forget how shitty his website looked. Even though he was passing himself off as an expert, he had the most basic CSS mistakes that I was able to fix with 3-4 months of hard training, and it looked like he used a WYSIWYG editor to cut corners.
Everything from him was diversion, and hyped up marketing bullshit. The money back date was coming up real soon too, so I got my money back. Personally, I think they were dodging questions so they could run out the money back date.
The truth is, all of these things I learned from were largely the blind leading the blind
And everytime I had a problem, every single one of these people who promised to answer, well they would ignore my questions, divert, or give some surface level answer because they didn't know shit either. And when I dug into them more by their youtube videos, etc, they'd even talk about how they would bullshit people for money. They wouldn't spell it out, but anyone with 1/2 a brain could read between the lines and see that's EXACTLY what it was.
So at that point, I felt I was on my own, and I still couldn't problem solve custom programming issues. So in an effort to get better and push myself, I'd make up a bunch of scenarios of potential customers that needed something like a ban proof youtube alternative from scratch, or things like this GoFundMe alternative I made.
From that, I'd get many more questions, and I'd boil each question down to the main principles it was built upon, which would equate to even more specific questions. Eventually after all the studying I had done, I had a list of about 40-50 questions that I couldn't answer. And again, each one ended up being 20+ rabbit trails too. And every time, my mind would go blank when thinking on them. There were no answers online, including stack overflow. Nothing. Nowhere. No one could teach me, and stiching it together was impossible. Everyone I asked either ran, because they were noobs too, or they ignored me.
They wouldn't even lead me in the right direction, because they were just as blind as I was. And in my quest to find the answers, I had read a number of stories about people who went to college for Computer Science, and they said when they got out they couldn't even code. I found this to be true from a guy I met at a place I went to below (where I finally became competent, and so did he), and some others I met online.
It was around this 6,000 hours of effort point, that I realized that the programming world is full of people who want to inflate their ego to look smart, but aren't
They're just one step ahead of you, so the masses think they're smart, and they play a fake confidence game to look good. Influencers are generally the dumbest and worst of them all. And like many others in my position, because of all this failed effort, I had what is called "Imposter syndrome". It's very common among programmers, even the so called "elite Google programmers". There are plenty articles online about that if you don't believe me. So the next time you think someone is your image of something good just because they wear the equivalent of "designer clothes": think again. The devil will come to you as an attractive person, not an ugly freak.
Because of all this, I decided to go through an actual coding bootcamp by people WAY better than I was at the time, instead of the crap I went through before, like the books, udemy, and youtube. Although those were decent starting points, and I'd suggest anyone interested start there to get their feet wet, but they were filled with giant gaps, bad habits that NEVER taught me how to solve a problem that had no answer to, and those bad habits were filled with security flaws. Again, they were the blind leading the blind.
This new place cost $1,400, was VERY hard, and we were held accountable. It was only 4 months long, but we met for a class in a zoom video chat about 3-4 times a week, and programmed our homework all day everyday. It was called RMOTR. They sold their company to some video platform sometime after I went there in 2019, but the history of me being there is in my github repositories from late 2018 to early 2019 if you want to check, and some of my older stuff like the email signup app have been changed significantly because back then I wasn't aware of the security flaws (and now I made my own honey pots to prevent abuse, and I won't update it there because I'm a big believer in security by obscurity, even though it would still technically be alright... Plus I've given enough free stuff with nothing in return).
After about 2 months there, and being the only person answering about 80% of the time (because I already had a huge leg up on the others - I had already gone through 90% of everything they were learning, and far more subjects that were never covered, like caching, dev ops, security flaws, etc)... By this point, almost my entire list of questions was answered except for like 3-5, and I never even had to ask one of them. The answer was just obvious. And once I got to that point, to test myself, I made a forum from scratch in about 9-10 hours (which is really a big version of Twitter, since Twitter is esentially just a mini forum / message board). I was surprised at how easy it was once I knew the principles behind everything.
And I'm not trying to brag on any of this, but no one else who went there was able to do that stuff yet, at least with the speed I did. And all the issues I dealt with before went a long way in making me better. In fact, another student even sounded jealous. But I am emphasizing this in case you're ever interested in being able to make things like this GoFundMe alternative, or things that don't exist yet. 3 months is most likely not enough to make you competent.
Hollywood, media, dumbass influencers like the guy I mentioned earlier, slick marketing bullshit, and propaganda... All these things have led the majority of people who know nothing about the programming world into thinking that the crap they brainwash you with is real. Movies on hacking are the worst offenders (someone cracking a government database is more like months to years of research and planning, then the hack is successful). A good general rule is that anything from ANY media, is usually hype, and you should prove it yourself before "believing" due to peer pressure.
So I've been there, done that, and I promise you that three_months_work_for_100k_a_year == bullshit. You will not be an expert. The only way I see that happening is if you have a photographic memory or something similar.
But to graduate, we had to make a custom program that used a third party API. Each of us had to come up with the idea, it had to be hard, and the teachers had to approve it. So about 2,000 more hours of this coding bootcamp (~8,000 hours of learning total): I made this GoFundMe alternative program with ease, graduated, and was finally at the point of competence where I could make things like this, and things that don't exist yet without fear.
Every scenario I had made above was easy to answer. I didn't have imposter syndrome anymore, and problem solving things with no obvious answer became easy, because everything finally made sense.
And in my years that followed this, I found that other people in this field took about that long to become competent too.
- MOST IMPORTANT INFO: Anyone will be allowed to donate to any fundraiser created for 90 days. They don't need to have an account, nor be logged in to donate. This program uses Paytrace's API and sandbox account. See "how to install" below for how to get started. I intentionally made this app pretty bare bones just to get the payment functionality up for a Minimum Viable Product. It started with the thought of making it for just one fundraiser, but that grew into making it allow many among different categories. That means if you have 2 or more fundraiser's going, all the money coming in would go to your ONE merchant account, and you would be responsible for dividing up everything properly, minus your estimated cut (see important payment gateway API info below - You will have to develop this program a little further if you want it to be more automated. Otherwise, only having 1 fundraiser going at a time works just fine). I set the cut to be 10% as an example. This extra complexity makes your job more complex if you have 2 or more fundraisers going at a time. So you will have to verify the values each fundraiser made from the paytrace dashboard on your own. Not the estimated amount stored on the database you set up. You will have to handle refunds, chargebacks, etc. too, and make all payouts manually based on the values raised from the Paytrace server, not the estimated value stored in your own database (see step 8 for an example on checks to make). I didn't make this program a turn key solution for the average dude to spin up with a click, because I didn't get paid anything to make it. XXXXXX So if you want to do something like I just suggested and extend the functionality to automate it better, I suggest you add admin actions with the principles I say in the Important payment gateway API info section below.
- Dynamic RSS 2 and Atom 1 feeds: people's reliance on Apple, Google, etc, have created many problems, such as the monopoly they have on what the public can see and hear. They aren't the only ones, but they are 2 of the biggest problems with the internet today. And with the apps they allow on their store, they're nothing more than gatekeepers who promise more exposure and money at the cost of getting you to self-censor. The end result is the shit show we live in today. Damn near every large media company tells nothing but lies, or even worse: knowingly telling you 1/2 the truth, and getting you to draw conclusions, so they have plausible deniablilty. With this program, I wanted to help the people get their voice back without gatekeepers like them... So each Fundraiser lets the creator make updates and edits to the fundraiser they made. People who subscribe to the feed can then get push notification updates about it, by having any free feed reader you can get anywhere. This goes a long way in sawing off the legs of the monopoly the aforementioned have. It's also a simple / fast work around to save money by not having to spend extra money on native apps for iOS or Android just for push notifications. Native apps are for the most part too invasive, and they cut out a larger group of people who don't have high end smart phones. So just subscribe to it in your feed reader on any device, and your feed reader will give push notifications for you, with the time you set it to check. Why pay more when you don't have to??
- PCI Compliant: No credit card numbers, security codes, etc. are stored on my database. See below too.
- Markdown syntax supported: Check the markdown syntax cheat sheet for formatting your fundraiser and updates for it.
Important payment gateway API info
If you have only one fundraiser going at a time: This is the easiest and works just fine. Just make 1 category, and 1 fundraiser for it. Deny anyone else the ability to make a fundraiser. But you will still have to handle refunds, chargebacks, etc. manually. All you really have to do is link it up to your paytrace merchant account.
If you have 2 OR MORE fundraisers going at a time: You will need to know exactly how much each Fundraiser raised from the Paytrace servers. I haven't done it myself yet, but skimming through the docs shows me you can add the optional discretionary data to give each payment something like a fundraiser_name attribute on their end, and have data exported by batch. I asked a programmer there and they confirmed to me that you can query their database for the amount raised based off the fundraiser, and the time it lasted for, instead of the estimation you get on the backend of your server. Again, this is so you get exact values before you make a payout to the person who made the fundraiser. So if I were to do that, I would do so with various admin actions. Such as check_funds_received() and payout(), and so on. And maybe have proper amounts exported to a csv file at the end or something similar. But since this is free program and I'm not getting paid for it, I didn't do it myself because like I said above about being around 8,000 hours to get to competence. I'm also making this open source now, so using this is at your own risk and responsibility, and to build on top of it if you want.
How to install
- Clone the repo, paste the fundraiser_app/ folder to your root project, and add that string with no slash to your INSTALLED_APPS list.
- Add path('fundraiser_app/', include('fundraiser_app.urls')), in your root project's urls.py, or with whatever route you want it to have.
- Make a sandbox account at Paytrace. You might have to contact them manually to get a sandbox account. I did.
- Download, rename, and add your public_key.pem file to the root of your static folder. This file will encrypt credit card numbers and security codes. Extra details on this process are in the paytrace JSON api Client Side Encryption Library section.
- From my included settings.py, have your programmer add the proper values from PAYTRACE_API_USER_NAME, PAYTRACE_API_USER_PASSWORD, PAYTRACE_API_USER_INTEGRATOR_ID, PAYTRACE_NEW_ACCESS_TOKEN_CREDENTIALS and PAYTRACE_NEW_ACCESS_TOKEN_HEADERS in your settings.py file. You will get these when you make a sandbox or merchant account.
- Search the directory for CustomUser, and change the imports / values to be equal to whatever your User object is. If you want more fields, add any you want.
- Make migrations, migrate, and mess with the settings you want required on the Paytrace payment gateway (names, CSC, zip code, etc.). Add those parameters as checks to make during the donate function, such as: if payment_response['response_code'] != 101:, and so on. Check the response codes, and other required attributes at those spots.
- Now with your backend Django account enabled, anyone with super user privileges can go to the dashboard and create any categories they want. Make at least one category. Anyone else who makes a non super user account on my site (or yours, if you implement it) can now make a new Fundraiser in any category they want, if they have an account at your site. But they can only do it if a category is created by a super user.
- Enjoy! And when you're ready, upgrade to a real merchant account instead of the sandbox. Links back to my site are also appreciated.