Skip to content

Commit 60771b2

Browse files
committed
added DuitNow
1 parent 21352cf commit 60771b2

File tree

12 files changed

+247
-88
lines changed

12 files changed

+247
-88
lines changed

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/config.example.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
209209
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
210210
fiuu.base_url = "https://sandbox.merchant.razer.com/"
211211
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
212+
fiuu.third_base_url="https://api.merchant.razer.com/"
212213
forte.base_url = "https://sandbox.forte.net/api/v3"
213214
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
214215
globepay.base_url = "https://pay.globepay.co/"

config/deployments/integration_test.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
5050
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
5151
fiuu.base_url = "https://sandbox.merchant.razer.com/"
5252
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
53+
fiuu.third_base_url="https://api.merchant.razer.com/"
5354
forte.base_url = "https://sandbox.forte.net/api/v3"
5455
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
5556
globepay.base_url = "https://pay.globepay.co/"

config/deployments/production.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
5454
fiservemea.base_url = "https://prod.emea.api.fiservapps.com"
5555
fiuu.base_url = "https://pay.merchant.razer.com/"
5656
fiuu.secondary_base_url="https://api.merchant.razer.com/"
57+
fiuu.third_base_url="https://api.merchant.razer.com/"
5758
forte.base_url = "https://sandbox.forte.net/api/v3"
5859
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
5960
globepay.base_url = "https://pay.globepay.co/"

config/deployments/sandbox.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
5454
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
5555
fiuu.base_url = "https://sandbox.merchant.razer.com/"
5656
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
57+
fiuu.third_base_url="https://api.merchant.razer.com/"
5758
forte.base_url = "https://sandbox.forte.net/api/v3"
5859
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
5960
globepay.base_url = "https://pay.globepay.co/"

config/development.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
217217
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
218218
fiuu.base_url = "https://sandbox.merchant.razer.com/"
219219
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
220+
fiuu.third_base_url="https://api.merchant.razer.com/"
220221
forte.base_url = "https://sandbox.forte.net/api/v3"
221222
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
222223
globepay.base_url = "https://pay.globepay.co/"

config/docker_compose.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ fiserv.base_url = "https://cert.api.fiservapps.com/"
138138
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
139139
fiuu.base_url = "https://sandbox.merchant.razer.com/"
140140
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
141+
fiuu.third_base_url="https://api.merchant.razer.com/"
141142
forte.base_url = "https://sandbox.forte.net/api/v3"
142143
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
143144
globepay.base_url = "https://pay.globepay.co/"

crates/hyperswitch_connectors/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ bytes = "1.6.0"
1919
error-stack = "0.4.1"
2020
hex = "0.4.3"
2121
http = "0.2.12"
22+
image = { version = "0.25.1", default-features = false, features = ["png"] }
2223
once_cell = "1.19.0"
24+
qrcode = "0.14.0"
2325
rand = "0.8.5"
2426
regex = "1.10.4"
2527
reqwest = { version = "0.11.27" }

crates/hyperswitch_connectors/src/connectors/fiuu.rs

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ pub mod transformers;
22

33
use std::collections::HashMap;
44

5-
use common_enums::{CaptureMethod, PaymentMethodType};
5+
use common_enums::{CaptureMethod, PaymentMethod, PaymentMethodType};
66
use common_utils::{
77
errors::{self as common_errors, CustomResult},
88
ext_traits::BytesExt,
@@ -230,13 +230,19 @@ impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData
230230

231231
fn get_url(
232232
&self,
233-
_req: &PaymentsAuthorizeRouterData,
233+
req: &PaymentsAuthorizeRouterData,
234234
connectors: &Connectors,
235235
) -> CustomResult<String, errors::ConnectorError> {
236-
Ok(format!(
237-
"{}RMS/API/Direct/1.4.0/index.php",
238-
self.base_url(connectors)
239-
))
236+
match req.payment_method {
237+
PaymentMethod::RealTimePayment => {
238+
let base_url = connectors.fiuu.third_base_url.clone();
239+
Ok(format!("{}RMS/API/staticqr/index.php", base_url))
240+
}
241+
_ => Ok(format!(
242+
"{}RMS/API/Direct/1.4.0/index.php",
243+
self.base_url(connectors)
244+
)),
245+
}
240246
}
241247

242248
fn get_request_body(
@@ -284,7 +290,7 @@ impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData
284290
) -> CustomResult<PaymentsAuthorizeRouterData, errors::ConnectorError> {
285291
let response: fiuu::FiuuPaymentsResponse = res
286292
.response
287-
.parse_struct("Fiuu PaymentsAuthorizeResponse")
293+
.parse_struct("Fiuu FiuuPaymentsResponse")
288294
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
289295
event_builder.map(|i| i.set_response_body(&response));
290296
router_env::logger::info!(connector_response=?response);
@@ -317,11 +323,7 @@ impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Fiu
317323
_req: &PaymentsSyncRouterData,
318324
connectors: &Connectors,
319325
) -> CustomResult<String, errors::ConnectorError> {
320-
let base_url = connectors
321-
.fiuu
322-
.secondary_base_url
323-
.as_ref()
324-
.ok_or(errors::ConnectorError::FailedToObtainIntegrationUrl)?;
326+
let base_url = connectors.fiuu.secondary_base_url.clone();
325327
Ok(format!("{}RMS/API/gate-query/index.php", base_url))
326328
}
327329
fn get_request_body(
@@ -384,11 +386,7 @@ impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> fo
384386
_req: &PaymentsCaptureRouterData,
385387
connectors: &Connectors,
386388
) -> CustomResult<String, errors::ConnectorError> {
387-
let base_url = connectors
388-
.fiuu
389-
.secondary_base_url
390-
.as_ref()
391-
.ok_or(errors::ConnectorError::FailedToObtainIntegrationUrl)?;
389+
let base_url = connectors.fiuu.secondary_base_url.clone();
392390
Ok(format!("{}RMS/API/capstxn/index.php", base_url))
393391
}
394392

@@ -462,11 +460,7 @@ impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Fi
462460
_req: &PaymentsCancelRouterData,
463461
connectors: &Connectors,
464462
) -> CustomResult<String, errors::ConnectorError> {
465-
let base_url = connectors
466-
.fiuu
467-
.secondary_base_url
468-
.as_ref()
469-
.ok_or(errors::ConnectorError::FailedToObtainIntegrationUrl)?;
463+
let base_url = connectors.fiuu.secondary_base_url.clone();
470464
Ok(format!("{}RMS/API/refundAPI/refund.php", base_url))
471465
}
472466

@@ -531,11 +525,7 @@ impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Fiuu {
531525
_req: &RefundsRouterData<Execute>,
532526
connectors: &Connectors,
533527
) -> CustomResult<String, errors::ConnectorError> {
534-
let base_url = connectors
535-
.fiuu
536-
.secondary_base_url
537-
.as_ref()
538-
.ok_or(errors::ConnectorError::FailedToObtainIntegrationUrl)?;
528+
let base_url = connectors.fiuu.secondary_base_url.clone();
539529
Ok(format!("{}RMS/API/refundAPI/index.php", base_url))
540530
}
541531

@@ -607,11 +597,7 @@ impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Fiuu {
607597
_req: &RefundSyncRouterData,
608598
connectors: &Connectors,
609599
) -> CustomResult<String, errors::ConnectorError> {
610-
let base_url = connectors
611-
.fiuu
612-
.secondary_base_url
613-
.as_ref()
614-
.ok_or(errors::ConnectorError::FailedToObtainIntegrationUrl)?;
600+
let base_url = connectors.fiuu.secondary_base_url.clone();
615601
Ok(format!("{}RMS/API/refundAPI/q_by_txn.php", base_url))
616602
}
617603

0 commit comments

Comments
 (0)