Subversion Repositories SmartDukaan

Rev

Rev 33689 | Rev 33715 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 33689 Rev 33693
Line 71... Line 71...
71
    private UpsellRazorpayPaymentStatusRepository upsellRazorpayPaymentStatusRepository;
71
    private UpsellRazorpayPaymentStatusRepository upsellRazorpayPaymentStatusRepository;
72
 
72
 
73
    @RequestMapping(value = "/upsellPayment/callback", method = RequestMethod.GET)
73
    @RequestMapping(value = "/upsellPayment/callback", method = RequestMethod.GET)
74
    public ResponseEntity<String> handleCallback(HttpServletRequest request) {
74
    public ResponseEntity<String> handleCallback(HttpServletRequest request) {
75
        try {
75
        try {
76
            LOGGER.info("Webhook called with query parameters");
-
 
77
 
76
 
78
            // Retrieve the Razorpay parameters from the query string
77
            // Retrieve the Razorpay parameters from the query string
79
            String paymentId = request.getParameter("razorpay_payment_id");
78
            String paymentId = request.getParameter("razorpay_payment_id");
80
            String razorpaySignature = request.getParameter("razorpay_signature");
79
            String razorpaySignature = request.getParameter("razorpay_signature");
-
 
80
            String paymentLinkId = request.getParameter("razorpay_payment_link_id");
-
 
81
            String paymentLinkStatus = request.getParameter("payment_link_status");
-
 
82
            String paymentLinkReferenceId = request.getParameter("payment_link_reference_id");
-
 
83
 
81
            String orderId = request.getParameter("orderId");
84
            String orderId = request.getParameter("orderId");
82
            String insuranceAmount = request.getParameter("insuranceAmount");
85
            String insuranceAmount = request.getParameter("insuranceAmount");
83
 
86
 
84
            // Check for required parameters
87
            // Check for required parameters
85
            if (paymentId == null || razorpaySignature == null || orderId == null || insuranceAmount == null) {
88
            if (paymentId == null || razorpaySignature == null || orderId == null || insuranceAmount == null) {
86
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Missing required parameters");
89
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Missing required parameters");
87
            }
90
            }
88
 
91
 
89
            // Construct payload for signature verification
-
 
90
            String payload = orderId + "|" + paymentId;
-
 
91
            String generated_signature = RazorpayPaymentService
92
            String generated_signature = RazorpayPaymentService
92
                    .calculateRFC2104HMAC(payload, razorpaySecret);
93
                    .calculateRFC2104HMAC(paymentLinkId + "|" + paymentId, razorpaySecret);
-
 
94
            LOGGER.info("generated_signature {}", generated_signature);
-
 
95
            if (generated_signature.equals(razorpaySignature)) {
-
 
96
                // Handle the payment status (you may need to add more logic depending on the status)
-
 
97
                updatePaymentStatus(paymentId, "captured", orderId, insuranceAmount);
93
 
98
 
94
            if (!generated_signature.equals(razorpaySignature)) {
-
 
95
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid signature");
99
                return ResponseEntity.ok("Payment successful for ID: " + paymentId);
96
 
100
 
-
 
101
            } else {
-
 
102
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid signature");
97
            }
103
            }
98
 
104
 
99
 
105
 
100
            // Handle the payment status (you may need to add more logic depending on the status)
-
 
101
            updatePaymentStatus(paymentId, "captured", orderId, insuranceAmount);
-
 
102
 
-
 
103
            return ResponseEntity.ok("Payment successful for ID: " + paymentId);
-
 
104
 
-
 
105
        } catch (Exception e) {
106
        } catch (Exception e) {
106
            e.printStackTrace();
107
            e.printStackTrace();
107
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error processing callback");
108
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error processing callback");
108
        }
109
        }
109
    }
110
    }