How to get started with creation of new payment gateway?
-
@Naresh-webkul "Bagisto Package Generator" documentation says Requirement is Bagisto 1.1.2 or higher.
So is it a must to have v1.2BETA? If possible I would like to tray with 1.1.2 instead of 1.2.
-
@AshJi
Yes as the Document says, it's compatible with Bagisto 1.1.2 or higher version.
You may use this generator for 1.1.2 as well. -
@Naresh-webkul I want to integrate PayU Money gateway, then also I should go about creating a payment method as "php artisan package:make-payment-method ACME/PayU" or is there another method?
-
@Naresh-webkul ,
is this package generator compatible with the latest pull from master branch here ?
https://github.com/bagisto/bagisto -
@otheriz
Yes, package generator is compatible with bagisto master branch https://github.com/bagisto/bagisto/tree/master or bagisto v1.1.2 as well -
@Naresh-webkul @Vaishali-Agarwal
I ran the below command of the package_generator module and was able to create a folder.
php artisan package:make-payment-method ACME/Stripe
Unfortunately files under the newly created folder, are just some placeholder code with absolutely no explanation of the field and what needs to be done. Unfortunately this link https://devdocs.bagisto.com/create_payment_method.html is not much help either.
I compared the folder/file structure of newly created folder with that of OOB Webkul/PayPal. That is also different.
Webklu/Paypal/src [5 sub folders]
MyApp/Razorpay/src [3 sub folders]
Can you please help share some working example using the package_generator .
-
@Naresh-webkul @Vaishali-Agarwal Do you guys have any comments/suggestion? Or should one just give up payment integration?
@Deepanjali @otheriz wondering whether you folks have been successful in following the documentation and achieve payment GW integration?
-
Hi @AshJi,
- After running this command, you will get whole directory structure,
php artisan package:make-payment-method ACME/Stripe
-
After running this command, you need to register you service provider in
config/app.php
. -
After then add the namespace in the
composer.json
file inpsr-4
key. -
Run
composer dump-autoload
. -
Run
php artisan config:cache
. This thing is important because may be you are doing everything right but after cache cleared you will get success.
Result:
-
Thanks @devansh-webkul for your revert. My other doubt about where I enter my app key, other secret keys which I receive from the PaymentGateway. From the UI I don't see a way to enter them. Am I missing something?
Please clarify and guide.
-
Hi @devansh-webkul,
Could you please elaborate on step 3 of the process, I'm not able to locate the correct composer.json file I guess -
@Deepanjali composer.json file is in the Bagisto home directory.
-
This post is deleted! -
The PayU payment has multiple options, while following the steps mentioned by @devansh-webkul makes it look like a single method:
How can I show the underlying methods and not the name of the gateway? -
Hi, for that you need to create one more array key in file
packages/ACME/Stripe/src/Config/system.php
.Right now you only have 3 keys in that file. You need to create one more key in that file,
For Example,
return [ [ 'key' => 'sales.paymentmethods.stripe', 'name' => 'Stripe', 'sort' => 1, 'fields' => [ [ 'name' => 'active', 'title' => 'Secret Key', // added hard coded for transaltion you need to add key 'type' => 'text', 'validation' => 'required', 'channel_based' => false, 'locale_based' => true, ] ] ] ];
And then rest is your development.
-
@devansh-webkul Added a new entry to the file
packages/ACME/RazorPay/src/Config/system.php
But I don't still understand the whole flow how this new Payment Gateway integration is supported. Where are we telling Bagisto which PG URL to hit to connect to the payment gateway?
1 <?php 2 3 return [ 4 [ 5 'key' => 'sales.paymentmethods.razorpay', 6 'name' => 'Razorpay', 7 'sort' => 1, 8 'fields' => [ 9 [ 10 'name' => 'title', 11 'title' => 'admin::app.admin.system.title', 12 'type' => 'text', 13 'validation' => 'required', 14 'channel_based' => false, 15 'locale_based' => true, 16 ], [ 17 'name' => 'description', 18 'title' => 'admin::app.admin.system.description', 19 'type' => 'textarea', 20 'channel_based' => false, 21 'locale_based' => true, 22 ], [ 23 'name' => 'active', 24 'title' => 'admin::app.admin.system.status', 25 'type' => 'boolean', 26 'validation' => 'required', 27 'channel_based' => false, 28 'locale_based' => true, 29 ], [ 30 'name' => 'active', 31 'title' => 'Secret Key', 32 'type' => 'text', 33 'validation' => 'required', 34 'channel_based' => false, 35 'locale_based' => true, 36 ] 37 ] 38 ] 39 ];
-
Hi @AshJi
This is just the boiler plate. For that you need to setup your code. You can take refrence of the Paypal payment gateway as well.
-
@devansh-webkul that was my initial query - why are folder structure of Paypal and one generated by your package different.
If one generated by package is not complete then why should one use this package.
I am confused now - does one use the package-generator module or clone Paypal folder.
-
Hi @devansh-webkul ,
Is there some documentation to integrate PayU or Razorpay gateway with out site,
somewhere one can get to enter the redirection url and secret keys? -
In initial phase, Paypal is also the same as you see the fresh package. So as per the requirement changes are done like registering routes, controller, etc.
If you are creating packages and modules than you need to go deeper as well.
Same here if you want to integrate PayU money you can take reference from the Paypal module.
-
@devansh-webkul Not sure whether I follow you want to say. Feature requirements I assume are internal to Bagisto. As end user, I would be interested in knowing what I can achieve with the 'package-installer' module? If one decides not to go "deeper", what purpose does this module serves? Just having a new payment option show up in UI cannot be the goal.
Unfortunately its neither clear in the docs not your replies. If the module in current form does not support full integration then it's fine. But in that case instructions at this link https://devdocs.bagisto.com/create_payment_method.html needs to be updated as they are not in sync with the module.
Hope you understand from end user's perspective.