Skip to content

Feature/payment module feat(payment): implement direct UPI link generation and QR Code generation and implemented suggestions #118

Open
SOUVIK-D10 wants to merge 9 commits into
rdodiya:gssoc_developfrom
SOUVIK-D10:feature/payment-module
Open

Feature/payment module feat(payment): implement direct UPI link generation and QR Code generation and implemented suggestions #118
SOUVIK-D10 wants to merge 9 commits into
rdodiya:gssoc_developfrom
SOUVIK-D10:feature/payment-module

Conversation

@SOUVIK-D10
Copy link
Copy Markdown

Issue Link

Closes #97

Changes Made

  1. Added a payment Module :-
    Totally independent and follows a plug and play architecture. It is intended to be used as a independent module. This module generates QR Code in PNG format and UPI Payment links for receiving payment. UPI ID needed to be passed along with some other parameters to generate the required resource. As instructed(https://github.com/vivekkushwaha66/upi-deeplink-builder) payment tracking are not much focused and left for the future only DB storage methods are built.

Type of Change

  • New feature : Payment Module

Testing Performed

Link generation : perfectly ok -> UPI payable link
QR Code generation : perfectly ok -> QR Code image in PNG format
Mobile Phone test -> Links are opening in payment apps when sent via whatsapp
DB tests -> Working as intended

Backend Testing (if applicable)

  • [ Yes] Unit tests passed
  • [Yes ] API endpoints tested locally with Postman/curl !!( Not recommended to use but still provided for testing for this module)
  • [ Yes] Database migrations verified
  • Test Cases:
    • Test case 1: To test if the link format is correct or not -> correct results
    • Test case 2: To test generate QR format and encoded URL -> correct PNG format and Proper QR Code
    • Test case 3: To test If link open in mobile yes

Functionality Demo

(Recording is no possible for security reasons and in-app restrictions)
Generate the link and send it to mobile having a payment app on whatsapp. Then click on the link you will be redirected to payment page.

Future Improvements needed :
- Real Payment tracking.
- 3rd party Gateway intregation

@SOUVIK-D10
Copy link
Copy Markdown
Author

Ok I have done my best. I hope my work will be helpful for the community. Thank You for the opportunity to work on a great issue.

# ===============================
security.jwt.secret=test-secret-key-for-testing-purposes-only-256-bits
security.jwt.expiration=3600000
security.jwt.secret=${JWT_SECRET}
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set default values

@rdodiya
Copy link
Copy Markdown
Owner

rdodiya commented May 16, 2026

Hi @SOUVIK-D10 ,
Please remove logs and set default values in properties and provide the necessary changes to run and test the functionality also add dependecy related com.google.zxing if required in build.gradle

@SOUVIK-D10 SOUVIK-D10 changed the title Feature/payment module feat(payment): implement direct UPI link generation and QR Code generation Feature/payment module feat(payment): implement direct UPI link generation and QR Code generation and implemented suggestions May 16, 2026
@SOUVIK-D10
Copy link
Copy Markdown
Author

Implemented changes see if any more modifications needed

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@rdodiya
Copy link
Copy Markdown
Owner

rdodiya commented May 16, 2026

Hi @SOUVIK-D10 ,
Please review below changes
Upid will not be passed as parameter as it will be fetched dynamically from table T_branch_master add upiId column in t_branch_master .

We have UI to add Upid in admin panel we will store it in T_branch_master and for now 1 branch has only accept payment in 1 upid

Image

@SOUVIK-D10
Copy link
Copy Markdown
Author

Controller is ment only for testing and OrderController is updated
Explanation : Payment Controller is only use for testing purpose, as this module is a plug-and-play type and should not have any external dependencies. That's why it is passed as parameter. Making it talk to database or accessing it through another request will kill it's purpose as I have designed it just like how we design and use JwtTokenProvider or other service+repo only modules. As for the OrderResponse adding link to it is a great idea I have done it. I have added comments for your reference.

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

Successfully merging this pull request may close these issues.

[Feature] UPI Integration Via Razerpay Gateway

3 participants