@@ -28,7 +28,7 @@ use strum::Display;
28
28
use crate :: {
29
29
types:: { RefundsResponseRouterData , ResponseRouterData } ,
30
30
utils:: {
31
- self , AddressDetailsData , ApplePay , PaymentsAuthorizeRequestData ,
31
+ self , AddressData , AddressDetailsData , ApplePay , PaymentsAuthorizeRequestData ,
32
32
PaymentsCancelRequestData , PaymentsCaptureRequestData , PaymentsSetupMandateRequestData ,
33
33
PaymentsSyncRequestData , RefundsRequestData , RouterData as _,
34
34
} ,
@@ -1467,7 +1467,7 @@ impl TryFrom<&SetupMandateRouterData> for NovalnetPaymentsRequest {
1467
1467
enums:: AuthenticationType :: NoThreeDs => None ,
1468
1468
} ;
1469
1469
let test_mode = get_test_mode ( item. test_mode ) ;
1470
- let req_address = item. get_billing_address ( ) ? . to_owned ( ) ;
1470
+ let req_address = item. get_optional_billing ( ) ;
1471
1471
1472
1472
let billing = NovalnetPaymentsRequestBilling {
1473
1473
house_no : item. get_optional_billing_line1 ( ) ,
@@ -1477,10 +1477,12 @@ impl TryFrom<&SetupMandateRouterData> for NovalnetPaymentsRequest {
1477
1477
country_code : item. get_optional_billing_country ( ) ,
1478
1478
} ;
1479
1479
1480
+ let email = item. get_billing_email ( ) . or ( item. request . get_email ( ) ) ?;
1481
+
1480
1482
let customer = NovalnetPaymentsRequestCustomer {
1481
- first_name : req_address. get_optional_first_name ( ) ,
1482
- last_name : req_address. get_optional_last_name ( ) ,
1483
- email : item . request . get_email ( ) ? . clone ( ) ,
1483
+ first_name : req_address. and_then ( |addr| addr . get_optional_first_name ( ) ) ,
1484
+ last_name : req_address. and_then ( |addr| addr . get_optional_last_name ( ) ) ,
1485
+ email,
1484
1486
mobile : item. get_optional_billing_phone_number ( ) ,
1485
1487
billing : Some ( billing) ,
1486
1488
// no_nc is used to indicate if minimal customer data is passed or not
@@ -1504,7 +1506,7 @@ impl TryFrom<&SetupMandateRouterData> for NovalnetPaymentsRequest {
1504
1506
card_expiry_month : req_card. card_exp_month . clone ( ) ,
1505
1507
card_expiry_year : req_card. card_exp_year . clone ( ) ,
1506
1508
card_cvc : req_card. card_cvc . clone ( ) ,
1507
- card_holder : req_address . get_full_name ( ) ?. clone ( ) ,
1509
+ card_holder : item . get_billing_address ( ) ?. get_full_name ( ) ? ,
1508
1510
} ) ;
1509
1511
1510
1512
let transaction = NovalnetPaymentsRequestTransaction {
0 commit comments