Skip to content

Commit 34ea608

Browse files
Abhishek ChorotiyaAbhishek Chorotiya
authored andcommitted
refactor: removed redsys payment type and code refactor
1 parent 89bab87 commit 34ea608

File tree

2 files changed

+147
-129
lines changed

2 files changed

+147
-129
lines changed

src/Utilities/PaymentHelpers.res

Lines changed: 147 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,153 @@ let rec maskPayload = payloadJson => {
10171017
}
10181018
}
10191019

1020+
let useCompleteAuthorizeShared = () => {
1021+
open RecoilAtoms
1022+
1023+
let customPodUri = Recoil.useRecoilValueFromAtom(customPodUri)
1024+
let setIsManualRetryEnabled = Recoil.useSetRecoilState(isManualRetryEnabled)
1025+
let isCallbackUsedVal = Recoil.useRecoilValueFromAtom(isCompleteCallbackUsed)
1026+
let redirectionFlags = Recoil.useRecoilValueFromAtom(redirectionFlagsAtom)
1027+
1028+
let buildBody = (clientSecret, bodyArr) =>
1029+
[("client_secret", clientSecret->JSON.Encode.string)]
1030+
->Array.concatMany([bodyArr, BrowserSpec.broswerInfo()])
1031+
->getJsonFromArrayOfJson
1032+
->JSON.stringify
1033+
1034+
let buildHeaders = (~key, ~mode) => [
1035+
("Content-Type", "application/json"),
1036+
("api-key", key),
1037+
("X-Client-Source", mode),
1038+
]
1039+
1040+
let run = (
1041+
~uri,
1042+
~headers,
1043+
~bodyStr,
1044+
~confirmParam,
1045+
~clientSecret,
1046+
~optLogger,
1047+
~handleUserError,
1048+
~paymentType,
1049+
~iframeId,
1050+
~sdkHandleOneClickConfirmPayment,
1051+
) =>
1052+
intentCall(
1053+
~fetchApi,
1054+
~uri,
1055+
~headers,
1056+
~bodyStr,
1057+
~confirmParam,
1058+
~clientSecret,
1059+
~optLogger,
1060+
~handleUserError,
1061+
~paymentType,
1062+
~iframeId,
1063+
~fetchMethod=#POST,
1064+
~setIsManualRetryEnabled,
1065+
~customPodUri,
1066+
~sdkHandleOneClickConfirmPayment,
1067+
~counter=0,
1068+
~isCallbackUsedVal,
1069+
~redirectionFlags,
1070+
)->ignore
1071+
1072+
let tryCompleteAuthorize = (
1073+
~clientSecret: option<string>,
1074+
~bodyArr,
1075+
~confirmParam: ConfirmType.confirmParams,
1076+
~iframeId,
1077+
~optLogger,
1078+
~handleUserError,
1079+
~paymentType,
1080+
~sdkHandleOneClickConfirmPayment,
1081+
~headers: option<array<(string, string)>>=?,
1082+
~paymentMode: option<string>=?,
1083+
) =>
1084+
switch clientSecret {
1085+
| Some(cs) =>
1086+
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey=confirmParam.publishableKey)
1087+
let uri = `${endpoint}/payments/${cs->getPaymentId}/complete_authorize`
1088+
let finalHeaders = switch headers {
1089+
| Some(h) => h
1090+
| None =>
1091+
buildHeaders(~key=confirmParam.publishableKey, ~mode=paymentMode->Belt.Option.getExn)
1092+
}
1093+
let bodyStr = buildBody(cs, bodyArr)
1094+
run(
1095+
~uri,
1096+
~headers=finalHeaders,
1097+
~bodyStr,
1098+
~confirmParam,
1099+
~clientSecret=cs,
1100+
~optLogger,
1101+
~handleUserError,
1102+
~paymentType,
1103+
~iframeId,
1104+
~sdkHandleOneClickConfirmPayment,
1105+
)
1106+
| None =>
1107+
postFailedSubmitResponse(
1108+
~errortype="complete_authorize_failed",
1109+
~message="Complete Authorize Failed. Try Again!",
1110+
)
1111+
}
1112+
1113+
tryCompleteAuthorize
1114+
}
1115+
1116+
let useCompleteAuthorize = (optLogger, paymentType) => {
1117+
let tryCompleteAuthorize = useCompleteAuthorizeShared()
1118+
let keys = Recoil.useRecoilValueFromAtom(RecoilAtoms.keys)
1119+
let paymentMethodList = Recoil.useRecoilValueFromAtom(RecoilAtoms.paymentMethodList)
1120+
let url = RescriptReactRouter.useUrl()
1121+
let mode =
1122+
CardUtils.getQueryParamsDictforKey(url.search, "componentName")
1123+
->CardThemeType.getPaymentMode
1124+
->CardThemeType.getPaymentModeToStrMapper
1125+
1126+
(~handleUserError=false, ~bodyArr, ~confirmParam, ~iframeId=keys.iframeId) =>
1127+
switch paymentMethodList {
1128+
| Loaded(_) =>
1129+
tryCompleteAuthorize(
1130+
~clientSecret=keys.clientSecret,
1131+
~bodyArr,
1132+
~confirmParam,
1133+
~iframeId,
1134+
~optLogger,
1135+
~handleUserError,
1136+
~paymentType,
1137+
~sdkHandleOneClickConfirmPayment=keys.sdkHandleOneClickConfirmPayment,
1138+
~paymentMode=mode,
1139+
)
1140+
| _ => ()
1141+
}
1142+
}
1143+
1144+
let useRedsysCompleteAuthorize = optLogger => {
1145+
let tryCompleteAuthorize = useCompleteAuthorizeShared()
1146+
(
1147+
~handleUserError=false,
1148+
~bodyArr,
1149+
~confirmParam,
1150+
~iframeId="redsys3ds",
1151+
~clientSecret,
1152+
~headers,
1153+
) =>
1154+
tryCompleteAuthorize(
1155+
~clientSecret,
1156+
~bodyArr,
1157+
~confirmParam,
1158+
~iframeId,
1159+
~optLogger,
1160+
~handleUserError,
1161+
~paymentType=Card,
1162+
~sdkHandleOneClickConfirmPayment=false,
1163+
~headers,
1164+
)
1165+
}
1166+
10201167
let usePaymentIntent = (optLogger, paymentType) => {
10211168
open RecoilAtoms
10221169
open Promise
@@ -1207,134 +1354,6 @@ let usePaymentIntent = (optLogger, paymentType) => {
12071354
}
12081355
}
12091356

1210-
let useRedsysCompleteAuthorize = optLogger => {
1211-
open RecoilAtoms
1212-
let customPodUri = Recoil.useRecoilValueFromAtom(customPodUri)
1213-
let setIsManualRetryEnabled = Recoil.useSetRecoilState(isManualRetryEnabled)
1214-
let isCallbackUsedVal = Recoil.useRecoilValueFromAtom(isCompleteCallbackUsed)
1215-
let redirectionFlags = Recoil.useRecoilValueFromAtom(redirectionFlagsAtom)
1216-
1217-
(
1218-
~handleUserError=false,
1219-
~bodyArr,
1220-
~confirmParam: ConfirmType.confirmParams,
1221-
~iframeId="redsys3ds",
1222-
~clientSecret,
1223-
~headers,
1224-
) => {
1225-
switch clientSecret {
1226-
| Some(clientSecret) =>
1227-
let paymentIntentID = clientSecret->getPaymentId
1228-
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey=confirmParam.publishableKey)
1229-
let uri = `${endpoint}/payments/${paymentIntentID}/complete_authorize`
1230-
1231-
let bodyStr =
1232-
[("client_secret", clientSecret->JSON.Encode.string)]
1233-
->Array.concatMany([bodyArr])
1234-
->getJsonFromArrayOfJson
1235-
->JSON.stringify
1236-
1237-
let completeAuthorize = () => {
1238-
intentCall(
1239-
~fetchApi,
1240-
~uri,
1241-
~headers,
1242-
~bodyStr,
1243-
~confirmParam: ConfirmType.confirmParams,
1244-
~clientSecret,
1245-
~optLogger,
1246-
~handleUserError,
1247-
~paymentType=Redsys3ds,
1248-
~iframeId,
1249-
~fetchMethod=#POST,
1250-
~setIsManualRetryEnabled,
1251-
~customPodUri,
1252-
~sdkHandleOneClickConfirmPayment=false,
1253-
~counter=0,
1254-
~isCallbackUsedVal,
1255-
~redirectionFlags,
1256-
)->ignore
1257-
}
1258-
1259-
completeAuthorize()
1260-
1261-
| None =>
1262-
postFailedSubmitResponse(
1263-
~errortype="complete_authorize_failed",
1264-
~message="Complete Authorize Failed. Try Again!",
1265-
)
1266-
}
1267-
}
1268-
}
1269-
let useCompleteAuthorize = (optLogger: option<HyperLogger.loggerMake>, paymentType: payment) => {
1270-
open RecoilAtoms
1271-
let paymentMethodList = Recoil.useRecoilValueFromAtom(paymentMethodList)
1272-
let keys = Recoil.useRecoilValueFromAtom(keys)
1273-
let customPodUri = Recoil.useRecoilValueFromAtom(customPodUri)
1274-
let setIsManualRetryEnabled = Recoil.useSetRecoilState(isManualRetryEnabled)
1275-
let url = RescriptReactRouter.useUrl()
1276-
let isCallbackUsedVal = Recoil.useRecoilValueFromAtom(RecoilAtoms.isCompleteCallbackUsed)
1277-
let redirectionFlags = Recoil.useRecoilValueFromAtom(redirectionFlagsAtom)
1278-
let paymentTypeFromUrl =
1279-
CardUtils.getQueryParamsDictforKey(url.search, "componentName")->CardThemeType.getPaymentMode
1280-
(
1281-
~handleUserError=false,
1282-
~bodyArr: array<(string, JSON.t)>,
1283-
~confirmParam: ConfirmType.confirmParams,
1284-
~iframeId=keys.iframeId,
1285-
) => {
1286-
switch keys.clientSecret {
1287-
| Some(clientSecret) =>
1288-
let paymentIntentID = clientSecret->getPaymentId
1289-
let headers = [
1290-
("Content-Type", "application/json"),
1291-
("api-key", confirmParam.publishableKey),
1292-
("X-Client-Source", paymentTypeFromUrl->CardThemeType.getPaymentModeToStrMapper),
1293-
]
1294-
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey=confirmParam.publishableKey)
1295-
let uri = `${endpoint}/payments/${paymentIntentID}/complete_authorize`
1296-
1297-
let browserInfo = BrowserSpec.broswerInfo
1298-
let bodyStr =
1299-
[("client_secret", clientSecret->JSON.Encode.string)]
1300-
->Array.concatMany([bodyArr, browserInfo()])
1301-
->getJsonFromArrayOfJson
1302-
->JSON.stringify
1303-
1304-
let completeAuthorize = () => {
1305-
intentCall(
1306-
~fetchApi,
1307-
~uri,
1308-
~headers,
1309-
~bodyStr,
1310-
~confirmParam: ConfirmType.confirmParams,
1311-
~clientSecret,
1312-
~optLogger,
1313-
~handleUserError,
1314-
~paymentType,
1315-
~iframeId,
1316-
~fetchMethod=#POST,
1317-
~setIsManualRetryEnabled,
1318-
~customPodUri,
1319-
~sdkHandleOneClickConfirmPayment=keys.sdkHandleOneClickConfirmPayment,
1320-
~counter=0,
1321-
~isCallbackUsedVal,
1322-
~redirectionFlags,
1323-
)->ignore
1324-
}
1325-
switch paymentMethodList {
1326-
| Loaded(_) => completeAuthorize()
1327-
| _ => ()
1328-
}
1329-
| None =>
1330-
postFailedSubmitResponse(
1331-
~errortype="complete_authorize_failed",
1332-
~message="Complete Authorize Failed. Try Again!",
1333-
)
1334-
}
1335-
}
1336-
}
1337-
13381357
let fetchSessions = (
13391358
~clientSecret,
13401359
~publishableKey,

src/Utilities/PaymentHelpersTypes.res

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ type payment =
88
| Paypal
99
| Samsungpay
1010
| Paze
11-
| Redsys3ds
1211
| Other
1312

1413
type paymentIntent = (

0 commit comments

Comments
 (0)