Skip to content

Commit bbc63d2

Browse files
chore: Update 3DS Cypress
1 parent 44bed1e commit bbc63d2

File tree

2 files changed

+142
-31
lines changed
  • crates/hyperswitch_connectors/src/connectors/nmi
  • cypress-tests/cypress/e2e/configs/Payment

2 files changed

+142
-31
lines changed

crates/hyperswitch_connectors/src/connectors/nmi/transformers.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ pub struct NmiCompleteResponse {
349349
pub cvvresponse: Option<String>,
350350
pub orderid: String,
351351
pub response_code: String,
352+
customer_vault_id: Option<Secret<String>>,
352353
}
353354

354355
impl
@@ -375,17 +376,27 @@ impl
375376
Ok(PaymentsResponseData::TransactionResponse {
376377
resource_id: ResponseId::ConnectorTransactionId(item.response.transactionid),
377378
redirection_data: Box::new(None),
378-
mandate_reference: Box::new(None),
379+
mandate_reference: match item.response.customer_vault_id {
380+
Some(vault_id) => Box::new(Some(
381+
hyperswitch_domain_models::router_response_types::MandateReference {
382+
connector_mandate_id: Some(vault_id.expose()),
383+
payment_method_id: None,
384+
mandate_metadata: None,
385+
connector_mandate_request_reference_id: None,
386+
},
387+
)),
388+
None => Box::new(None),
389+
},
379390
connector_metadata: None,
380391
network_txn_id: None,
381392
connector_response_reference_id: Some(item.response.orderid),
382393
incremental_authorization_allowed: None,
383394
charges: None,
384395
}),
385396
if item.data.request.is_auto_capture()? {
386-
AttemptStatus::CaptureInitiated
397+
AttemptStatus::Charged
387398
} else {
388-
AttemptStatus::Authorizing
399+
AttemptStatus::Authorized
389400
},
390401
),
391402
Response::Declined | Response::Error => (

cypress-tests/cypress/e2e/configs/Payment/Nmi.js

Lines changed: 128 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,15 @@ export const connectorDetails = {
153153
},
154154
},
155155
},
156+
MITManualCapture: {
157+
Request: {},
158+
Response: {
159+
status: 200,
160+
body: {
161+
status: "requires_capture",
162+
},
163+
},
164+
},
156165
Capture: {
157166
Request: {
158167
amount_to_capture: 6000,
@@ -487,10 +496,36 @@ export const connectorDetails = {
487496
},
488497
},
489498
},
490-
PaymentMethodIdMandateNo3DSAutoCapture: {
491-
Configs: {
492-
TRIGGER_SKIP: true,
499+
PaymentIntentOffSession: {
500+
Request: {
501+
amount: 6000,
502+
authentication_type: "no_three_ds",
503+
currency: "USD",
504+
customer_acceptance: null,
505+
setup_future_usage: "off_session",
506+
},
507+
Response: {
508+
status: 200,
509+
body: {
510+
status: "requires_payment_method",
511+
},
512+
},
513+
},
514+
SaveCardConfirmAutoCaptureOffSession: {
515+
Request: {
516+
setup_future_usage: "off_session",
517+
payment_method_data: {
518+
card: successfulNo3DSCardDetails,
519+
},
520+
},
521+
Response: {
522+
status: 200,
523+
body: {
524+
status: "succeeded",
525+
},
493526
},
527+
},
528+
PaymentMethodIdMandateNo3DSAutoCapture: {
494529
Request: {
495530
payment_method: "card",
496531
payment_method_data: {
@@ -507,38 +542,43 @@ export const connectorDetails = {
507542
},
508543
},
509544
},
510-
PaymentMethodIdMandateNo3DSManualCapture: {
545+
SaveCardUseNo3DSAutoCaptureOffSession: {
511546
Configs: {
512-
TRIGGER_SKIP: true,
547+
CONNECTOR_CREDENTIAL: {
548+
specName: ["connectorAgnosticNTID"],
549+
value: "connector_2",
550+
},
513551
},
514552
Request: {
515553
payment_method: "card",
554+
payment_method_type: "debit",
516555
payment_method_data: {
517556
card: successfulNo3DSCardDetails,
518557
},
519-
currency: "USD",
520-
mandate_data: null,
558+
setup_future_usage: "off_session",
521559
customer_acceptance: customerAcceptance,
522560
},
523561
Response: {
524562
status: 200,
525563
body: {
526-
status: "requires_capture",
564+
status: "succeeded",
527565
},
528566
},
529567
},
530-
PaymentMethodIdMandate3DSAutoCapture: {
568+
SaveCardUse3DSAutoCaptureOffSession: {
531569
Configs: {
532-
// Skipping redirection here for mandate 3ds auto capture as it requires changes from the core
533-
TRIGGER_SKIP: true,
570+
CONNECTOR_CREDENTIAL: {
571+
specName: ["connectorAgnosticNTID"],
572+
value: "connector_2",
573+
},
534574
},
535575
Request: {
536576
payment_method: "card",
577+
payment_method_type: "debit",
537578
payment_method_data: {
538579
card: successfulThreeDSTestCardDetails,
539580
},
540-
mandate_data: null,
541-
authentication_type: "three_ds",
581+
setup_future_usage: "off_session",
542582
customer_acceptance: customerAcceptance,
543583
},
544584
Response: {
@@ -548,51 +588,111 @@ export const connectorDetails = {
548588
},
549589
},
550590
},
551-
PaymentMethodIdMandate3DSManualCapture: {
591+
SaveCardUseNo3DSManualCaptureOffSession: {
592+
Request: {
593+
payment_method: "card",
594+
payment_method_data: {
595+
card: successfulNo3DSCardDetails,
596+
},
597+
setup_future_usage: "off_session",
598+
customer_acceptance: customerAcceptance,
599+
},
600+
Response: {
601+
status: 200,
602+
body: {
603+
status: "requires_capture",
604+
},
605+
},
606+
},
607+
SaveCardConfirmAutoCaptureOffSession: {
552608
Configs: {
553-
TRIGGER_SKIP: true,
609+
CONNECTOR_CREDENTIAL: {
610+
specName: ["connectorAgnosticNTID"],
611+
value: "connector_2",
612+
},
613+
},
614+
Request: {
615+
setup_future_usage: "off_session",
616+
},
617+
Response: {
618+
status: 200,
619+
body: {
620+
status: "succeeded",
621+
},
622+
},
623+
},
624+
SaveCardConfirmManualCaptureOffSession: {
625+
Request: {
626+
setup_future_usage: "off_session",
627+
},
628+
Response: {
629+
status: 200,
630+
body: {
631+
status: "requires_capture",
632+
},
633+
},
634+
},
635+
SaveCardConfirmAutoCaptureOffSessionWithoutBilling: {
636+
Request: {
637+
setup_future_usage: "off_session",
638+
billing: null,
639+
},
640+
Response: {
641+
status: 200,
642+
body: {
643+
status: "succeeded",
644+
},
554645
},
646+
},
647+
PaymentMethodIdMandateNo3DSManualCapture: {
555648
Request: {
649+
payment_method: "card",
556650
payment_method_data: {
557-
card: successfulThreeDSTestCardDetails,
651+
card: successfulNo3DSCardDetails,
558652
},
653+
currency: "USD",
559654
mandate_data: null,
560-
authentication_type: "three_ds",
561655
customer_acceptance: customerAcceptance,
562656
},
563657
Response: {
564658
status: 200,
565659
body: {
566-
status: "requires_customer_action",
660+
status: "requires_capture",
567661
},
568662
},
569663
},
570-
PaymentIntentOffSession: {
664+
PaymentMethodIdMandate3DSAutoCapture: {
571665
Request: {
572-
amount: 6000,
573-
authentication_type: "no_three_ds",
666+
payment_method: "card",
667+
payment_method_data: {
668+
card: successfulThreeDSTestCardDetails,
669+
},
574670
currency: "USD",
575-
customer_acceptance: null,
576-
setup_future_usage: "off_session",
671+
mandate_data: null,
672+
authentication_type: "three_ds",
673+
customer_acceptance: customerAcceptance,
577674
},
578675
Response: {
579676
status: 200,
580677
body: {
581-
status: "requires_payment_method",
678+
status: "requires_customer_action",
582679
},
583680
},
584681
},
585-
SaveCardConfirmAutoCaptureOffSession: {
682+
PaymentMethodIdMandate3DSManualCapture: {
586683
Request: {
587-
setup_future_usage: "off_session",
684+
payment_method: "card",
588685
payment_method_data: {
589-
card: successfulNo3DSCardDetails,
686+
card: successfulThreeDSTestCardDetails,
590687
},
688+
mandate_data: null,
689+
authentication_type: "three_ds",
690+
customer_acceptance: customerAcceptance,
591691
},
592692
Response: {
593693
status: 200,
594694
body: {
595-
status: "succeeded",
695+
status: "requires_customer_action",
596696
},
597697
},
598698
},

0 commit comments

Comments
 (0)