
STRIPE INTERGRATION
- or -
Post a project like this2001
£700(approx. $940)
- Posted:
- Proposals: 18
- Remote
- #2903414
- Awarded
WordPress Expert✮Shopify Expert✮Graphic Designer✮AutoCAD 2D & 3D✮CV Writer & Designer✮Fullstack developer

UK'S No.1 - Wordpress|Magento|PHP| Responsive | PSD to responsive html | All Time Top Rated freelancer on PPH | 100% client satisfaction | Ecommerce | SEO




Software Engineer | WordPress | WooCommerce | SHOPIFY | PHP | LARAVEL | ROR | INTEGRATION |WEB DEVELOPMENT | THEME DEVELOPMENT | PLUGIN DEVELOPMENT |

Mobile & Web Application - Full Stack Development & Designing / DevOps Specialist

♛ PPH No. #1 ♛ 12 Years of Experience in Web & Mobile Development & Designing ✔ Magento ✔ Shopify ✔ WordPress ✔ API Integration ✔ React Native ✔ AngularJS / Node.js ✔Responsive Design


726448363657321815062479060135299120501215723846199521170005273857845011942133760
Description
Experience Level: Expert
Integrating the stripe payment platform into our existing Laravel system. We are under a strict NDA so the company name has been replaced with "Company Name:"
Summary
We want to integrate Stripe as our payment provider as part of our CRM platform.
The CRM platform is built on Laravel 7 using Models for data representation, Repositories for data manipulation and Services for our business logic The project is still early in development, so the codebase is still a work in progress.
We want to allow our users to be able to purchase bundles of credits (eg 50, 100, 500, 1000, 5000 etc) from an account page once they are logged in to the CRM. They will then be able to use these credits against leads that will be coming into the system.
The majority of the Stripe integration codebase should be contained within a Payments module.
Credits will have a base price, and the user will receive a % discount based on the more credits they purchase. Bundles and discounts should be stored in the database.
The user should have a page where they can save details for 1 card (possibly multiple cards in the future, and maybe even completely different payment methods such as PayPal & Apple pay).
Payment details should be stored on Stripe for Continuous Payment Authority. We will also require some way to notify us and the users when cards are due to expire and when they are expired, so we can prompt the user accordingly.
The user should be able to set up an optional auto-topup feature, so when their credits fall below a threshold (user-definable) their credits are topped up with their default top-up amount (user-definable) using the payment details stored on their Stripe customer.
The user should be able to view all their transactions on a transactions page (this should include purchases of credits, as well as spending credits on Leads).
We should be able refund credits to the user, based on an existing credit transaction.
We should also be able issue free credits to a user - this will be used by us to test the system without having to physically pay for them, as well as gifting credits to users as part of future promotions.
Any Stripe API keys (or other sensitive data) should be stored in the .env file so they are never saved to our GIT repository.
The credit price for a Lead will be a varying number of credits, so it’s NOT simply 1 credit = 1 lead. More likely something like 50 credits per lead, this should be configurable as a default, as well as per-user.
Different CRM users will be offered different credit prices for leads, so we need a way to set credits-per-lead on a per-user basis.
Configuration (Company Name Admin)
The following should be configurable by Company Name Admins, these should be fine in config files or database tables:-
• Base GBP Price for a credit
• Base credit price for a lead
• Credit bundle amounts (eg 50, 100, 250…)
• Bundle Discounts (eg 2% for 50, 5% for 100…)
• Default auto-topup threshold
• Default auto-topup amount
Configuration (User managed)
Users will need to be able to configure some settings for themselves, so they’ll need to be editable on a settings page:-
• Auto-topup on/off
• auto-topup threshold (overrides default)
• auto-topup amount (overrides default)
User Pages required
• User Payment settings (to manage auto top-up, add and update card details)
• User Transactions (a paginated table of transactions using datatables.net)
• Purchase credits - the user should be able to use their stored card details to manually buy a bundle of credits. The user should also be able to enter card details for a one-off purchase where card details are not stored.
• Request a refund - the user should be able to select a credit transaction from their transactions list and request a refund, giving a reason for the request - this should be stored in the database, and an email sent to an admin.
Admin Pages required
• View transactions for a user
• Refund a credit transaction to the user (either full or partial refund of credits)
• Gift credits to a user
Payment Services methods required
We will need to be able to interact with the Payments module from other areas of our codebase, so we will need Service methods creating to handle the following:-
• Charge credits for user - eg PaymentsService::charge($userID, $credits, $description)
• Refund Credits - eg PaymentsService::refund($userID, $transactionID, $credits, $reason)
• Gift Credits - eg PaymentsService::giftCredits($userID, $credits, $description)
• There may need to be more…
GIT
All work should be committed to a development branch, and a pull-request created every time there is work to review.
Summary
We want to integrate Stripe as our payment provider as part of our CRM platform.
The CRM platform is built on Laravel 7 using Models for data representation, Repositories for data manipulation and Services for our business logic The project is still early in development, so the codebase is still a work in progress.
We want to allow our users to be able to purchase bundles of credits (eg 50, 100, 500, 1000, 5000 etc) from an account page once they are logged in to the CRM. They will then be able to use these credits against leads that will be coming into the system.
The majority of the Stripe integration codebase should be contained within a Payments module.
Credits will have a base price, and the user will receive a % discount based on the more credits they purchase. Bundles and discounts should be stored in the database.
The user should have a page where they can save details for 1 card (possibly multiple cards in the future, and maybe even completely different payment methods such as PayPal & Apple pay).
Payment details should be stored on Stripe for Continuous Payment Authority. We will also require some way to notify us and the users when cards are due to expire and when they are expired, so we can prompt the user accordingly.
The user should be able to set up an optional auto-topup feature, so when their credits fall below a threshold (user-definable) their credits are topped up with their default top-up amount (user-definable) using the payment details stored on their Stripe customer.
The user should be able to view all their transactions on a transactions page (this should include purchases of credits, as well as spending credits on Leads).
We should be able refund credits to the user, based on an existing credit transaction.
We should also be able issue free credits to a user - this will be used by us to test the system without having to physically pay for them, as well as gifting credits to users as part of future promotions.
Any Stripe API keys (or other sensitive data) should be stored in the .env file so they are never saved to our GIT repository.
The credit price for a Lead will be a varying number of credits, so it’s NOT simply 1 credit = 1 lead. More likely something like 50 credits per lead, this should be configurable as a default, as well as per-user.
Different CRM users will be offered different credit prices for leads, so we need a way to set credits-per-lead on a per-user basis.
Configuration (Company Name Admin)
The following should be configurable by Company Name Admins, these should be fine in config files or database tables:-
• Base GBP Price for a credit
• Base credit price for a lead
• Credit bundle amounts (eg 50, 100, 250…)
• Bundle Discounts (eg 2% for 50, 5% for 100…)
• Default auto-topup threshold
• Default auto-topup amount
Configuration (User managed)
Users will need to be able to configure some settings for themselves, so they’ll need to be editable on a settings page:-
• Auto-topup on/off
• auto-topup threshold (overrides default)
• auto-topup amount (overrides default)
User Pages required
• User Payment settings (to manage auto top-up, add and update card details)
• User Transactions (a paginated table of transactions using datatables.net)
• Purchase credits - the user should be able to use their stored card details to manually buy a bundle of credits. The user should also be able to enter card details for a one-off purchase where card details are not stored.
• Request a refund - the user should be able to select a credit transaction from their transactions list and request a refund, giving a reason for the request - this should be stored in the database, and an email sent to an admin.
Admin Pages required
• View transactions for a user
• Refund a credit transaction to the user (either full or partial refund of credits)
• Gift credits to a user
Payment Services methods required
We will need to be able to interact with the Payments module from other areas of our codebase, so we will need Service methods creating to handle the following:-
• Charge credits for user - eg PaymentsService::charge($userID, $credits, $description)
• Refund Credits - eg PaymentsService::refund($userID, $transactionID, $credits, $reason)
• Gift Credits - eg PaymentsService::giftCredits($userID, $credits, $description)
• There may need to be more…
GIT
All work should be committed to a development branch, and a pull-request created every time there is work to review.
Stephen B.
89% (44)Projects Completed
55
Freelancers worked with
63
Projects awarded
31%
Last project
1 Nov 2020
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies