mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	feat(payments): add client_secret auth for payments retrieve (#1663)
This commit is contained in:
		 Abhishek Marrivagu
					Abhishek Marrivagu
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							be5d55c98f
						
					
				
				
					commit
					b428298030
				
			| @ -70,6 +70,7 @@ pub async fn payment_intents_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
|     path: web::Path<String>, | ||||
|     query_payload: web::Query<types::StripePaymentRetrieveBody>, | ||||
| ) -> HttpResponse { | ||||
|     let payload = payment_types::PaymentsRetrieveRequest { | ||||
|         resource_id: api_types::PaymentIdType::PaymentIntentId(path.to_string()), | ||||
| @ -78,12 +79,14 @@ pub async fn payment_intents_retrieve( | ||||
|         connector: None, | ||||
|         param: None, | ||||
|         merchant_connector_details: None, | ||||
|         client_secret: query_payload.client_secret.clone(), | ||||
|     }; | ||||
|  | ||||
|     let (auth_type, auth_flow) = match auth::get_auth_type_and_flow(req.headers()) { | ||||
|         Ok(auth) => auth, | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|     let (auth_type, auth_flow) = | ||||
|         match auth::check_client_secret_and_get_auth(req.headers(), &payload) { | ||||
|             Ok(auth) => auth, | ||||
|             Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsRetrieve; | ||||
|  | ||||
|  | ||||
| @ -718,3 +718,8 @@ pub(crate) fn into_stripe_next_action( | ||||
|         } | ||||
|     }) | ||||
| } | ||||
|  | ||||
| #[derive(Deserialize, Clone)] | ||||
| pub struct StripePaymentRetrieveBody { | ||||
|     pub client_secret: Option<String>, | ||||
| } | ||||
|  | ||||
| @ -6,7 +6,10 @@ use error_stack::report; | ||||
| use router_env::{instrument, tracing, Flow}; | ||||
|  | ||||
| use crate::{ | ||||
|     compatibility::{stripe::errors, wrap}, | ||||
|     compatibility::{ | ||||
|         stripe::{errors, payment_intents::types as stripe_payment_types}, | ||||
|         wrap, | ||||
|     }, | ||||
|     core::payments, | ||||
|     routes, | ||||
|     services::{api, authentication as auth}, | ||||
| @ -71,6 +74,7 @@ pub async fn setup_intents_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
|     path: web::Path<String>, | ||||
|     query_payload: web::Query<stripe_payment_types::StripePaymentRetrieveBody>, | ||||
| ) -> HttpResponse { | ||||
|     let payload = payment_types::PaymentsRetrieveRequest { | ||||
|         resource_id: api_types::PaymentIdType::PaymentIntentId(path.to_string()), | ||||
| @ -79,12 +83,14 @@ pub async fn setup_intents_retrieve( | ||||
|         connector: None, | ||||
|         param: None, | ||||
|         merchant_connector_details: None, | ||||
|         client_secret: query_payload.client_secret.clone(), | ||||
|     }; | ||||
|  | ||||
|     let (auth_type, auth_flow) = match auth::get_auth_type_and_flow(req.headers()) { | ||||
|         Ok(auth) => auth, | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|     let (auth_type, auth_flow) = | ||||
|         match auth::check_client_secret_and_get_auth(req.headers(), &payload) { | ||||
|             Ok(auth) => auth, | ||||
|             Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsRetrieve; | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user