@@ -1017,6 +1017,153 @@ let rec maskPayload = payloadJson => {
1017
1017
}
1018
1018
}
1019
1019
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
+
1020
1167
let usePaymentIntent = (optLogger , paymentType ) => {
1021
1168
open RecoilAtoms
1022
1169
open Promise
@@ -1207,134 +1354,6 @@ let usePaymentIntent = (optLogger, paymentType) => {
1207
1354
}
1208
1355
}
1209
1356
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
-
1338
1357
let fetchSessions = (
1339
1358
~clientSecret ,
1340
1359
~publishableKey ,
0 commit comments