From 74d4075f8f90a61df8adf8c88743d5f2094d1fcd Mon Sep 17 00:00:00 2001 From: Kakabay <2kakabayashyrberdyew@gmail.com> Date: Wed, 3 Apr 2024 17:15:14 +0500 Subject: [PATCH] otp validation before loan create added --- .../ImmediateCreditsStages/AcceptStage.js | 94 ++------ .../ImmediateCreditsStages/PhoneAccept.js | 202 +++++++++++++++--- .../immediateCredits/ImmediateCreditModal.js | 4 +- 3 files changed, 186 insertions(+), 114 deletions(-) diff --git a/src/components/ImmediateCreditsStages/AcceptStage.js b/src/components/ImmediateCreditsStages/AcceptStage.js index 3fefaa0..4f45067 100644 --- a/src/components/ImmediateCreditsStages/AcceptStage.js +++ b/src/components/ImmediateCreditsStages/AcceptStage.js @@ -51,94 +51,29 @@ const AcceptStage = ({ }, }); - const fetchData = async () => { + const sendCode = async () => { try { - setIsLoading(true); - - const response = await fetch( - `https://shahsyotag.halkbank.gov.tm/onlineloancre-services/api/loancre`, - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - clientRecipient: { - idSeria: borrowerData.idSeria, - idNo: borrowerData.idNo, - accountNo: borrowerData.accountNo, - name: borrowerData.name, - surname: borrowerData.surname, - availableAmount: borrowerData.availableAmount, - clientType: 'recipient', - signRecipient: borrowerData.signRecipient, - }, - clientGuarantor: isGuranter - ? { - idSeria: guaranterData.idSeria, - idNo: guaranterData.idNo, - accountNo: guaranterData.accountNo, - name: guaranterData.name, - surname: guaranterData.surname, - availableAmount: guaranterData.availableAmount, - clientType: 'guarantor', - signGuarantor: guaranterData.signGuarantor, - } - : null, - availableAmount: recepientAmount, - creditCardAccountNumber: cardDetails, - mrtIsInsuarance: isGuranter ? 0 : 1, - termInYears: creditDuration, - }), - }, - ); + const response = await fetch('https://shahsyotag.halkbank.gov.tm/sendOTP', { + method: 'POST', + headers: { 'Content-Type': 'aplication/json' }, + body: JSON.stringify({ + phone_number: '+99361454210', + }), + }); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } - const responseJson = await response.json(); - - if (responseJson.errCode === 0) { - sendData(responseJson); - } else { - setErrMessage(responseJson.messageRu); - setStage(10); - } + setStage(9); } catch (error) { - console.error(error.toString()); - // Handle errors as needed - setError(true); - } - }; - - const sendData = async (requestBody) => { - try { - const headers = { - Accept: 'application/json', - 'Content-Type': 'application/json', - Authorization: `Bearer ${userToken}`, - }; - const response = await fetch('https://shahsyotag.halkbank.gov.tm/app/api/quick_loans', { - method: 'POST', - headers: headers, - body: JSON.stringify(requestBody.sign), - }); - - const jsonedResponse = await response.json(); - setAcceptedMessage(jsonedResponse.message); - - setIsLoading(false); - - setStage(11); - } catch (error) { - console.error(error.toString()); - setError(true); + console.error(error); } }; const onSubmit = () => { - fetchData(); + sendCode(); + setStage(9); }; if (error) { @@ -258,7 +193,10 @@ const AcceptStage = ({ type="submit" className="sign-btn cu-btn" disabled={cardDetails.length !== 23 && !isLoading ? true : false} - onClick={onSubmit}> + onClick={() => { + onSubmit(); + setStage(9); + }}>

{locale === 'TKM' diff --git a/src/components/ImmediateCreditsStages/PhoneAccept.js b/src/components/ImmediateCreditsStages/PhoneAccept.js index 121b8f4..58bf1cd 100644 --- a/src/components/ImmediateCreditsStages/PhoneAccept.js +++ b/src/components/ImmediateCreditsStages/PhoneAccept.js @@ -16,14 +16,21 @@ const schema = z.object({ }); const PhoneAccept = ({ - setStage, + paymentDetails, borrowerData, submitCardDetails, - paymentDetails, paymentLink, + setStage, + isGuranter, + guaranterData, + recepientAmount, + cardDetails, + creditDuration, + setAcceptedMessage, }) => { const { locale } = useContext(LanguageContext); const { user } = useContext(UserContext); + const userToken = localStorage.getItem('userToken'); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(false); @@ -33,6 +40,8 @@ const PhoneAccept = ({ const [codeValue, setPhoneValue] = useState(''); + const [errMesage, setErrMessage] = useState(); + const handleCodeChange = (e) => { setPhoneValue(e.target.value); }; @@ -41,8 +50,6 @@ const PhoneAccept = ({ resolver: zodResolver(schema), }); - console.log(paymentDetails); - const confirmPayment = async () => { try { const headers = { @@ -70,10 +77,13 @@ const PhoneAccept = ({ throw new Error(`HTTP error! Status: ${response.status}`); } - if (jsonedResponse.status === 'ok' && jsonedResponse.finalurl.includes('status=1')) { + if (jsonedResponse.status === 'ok' && jsonedResponse['final-url'].includes('status=1')) { setInvalidData(false); checkPayment(); - } else if (jsonedResponse.status === 'wrong-otp') { + } else if ( + jsonedResponse.status === 'wrong-otp' || + !jsonedResponse['final-url'].includes('status=1') + ) { setTryAgain(true); } else { setInvalidData(true); @@ -117,8 +127,6 @@ const PhoneAccept = ({ const jsonedResponse = await response.json(); - console.log(jsonedResponse); - if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } @@ -129,8 +137,121 @@ const PhoneAccept = ({ } }; + const confirmCode = async () => { + try { + setIsLoading(true); + const response = await fetch('https://shahsyotag.halkbank.gov.tm/validateOTP', { + headers: { 'Content-Type': 'aplication/json' }, + method: 'POST', + + body: JSON.stringify({ + phone_number: '+99361454210', + otp: codeValue, + }), + }); + + const jsonedResponse = await response.json(); + + if (jsonedResponse === 'OTP validated successfully') { + fetchData(); + } else { + setErrMessage(true); + } + } catch (error) {} + }; + + const fetchData = async () => { + try { + const response = await fetch( + `https://shahsyotag.halkbank.gov.tm/onlineloancre-services/api/loancre`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + clientRecipient: { + idSeria: borrowerData.idSeria, + idNo: borrowerData.idNo, + accountNo: borrowerData.accountNo, + name: borrowerData.name, + surname: borrowerData.surname, + availableAmount: borrowerData.availableAmount, + clientType: 'recipient', + signRecipient: borrowerData.signRecipient, + }, + clientGuarantor: isGuranter + ? { + idSeria: guaranterData.idSeria, + idNo: guaranterData.idNo, + accountNo: guaranterData.accountNo, + name: guaranterData.name, + surname: guaranterData.surname, + availableAmount: guaranterData.availableAmount, + clientType: 'guarantor', + signGuarantor: guaranterData.signGuarantor, + } + : null, + availableAmount: recepientAmount, + creditCardAccountNumber: cardDetails, + mrtIsInsuarance: isGuranter ? 0 : 1, + termInYears: creditDuration, + }), + }, + ); + + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + + const responseJson = await response.json(); + + if (responseJson.errCode === 0) { + sendData(responseJson); + } else { + setErrMessage(responseJson.messageRu); + setStage(10); + } + } catch (error) { + console.error(error.toString()); + // Handle errors as needed + setError(true); + } + }; + + const sendData = async (requestBody) => { + try { + const headers = { + Accept: 'application/json', + 'Content-Type': 'application/json', + Authorization: `Bearer ${userToken}`, + }; + const response = await fetch('https://shahsyotag.halkbank.gov.tm/app/api/quick_loans', { + method: 'POST', + headers: headers, + body: JSON.stringify(requestBody.sign), + }); + + const jsonedResponse = await response.json(); + if (!cardDetails) { + } + + setAcceptedMessage(jsonedResponse.message); + setIsLoading(false); + + setStage(11); + } catch (error) { + console.error(error.toString()); + setError(true); + } + }; + const onSubmit = (data) => { - confirmPayment(); + if (cardDetails) { + confirmCode(); + } else { + confirmPayment(); + } }; if (isLoading) { @@ -141,29 +262,29 @@ const PhoneAccept = ({ ); } - // if (error) { - // return ( - //
- //

Error...

- // - //
- // ); - // } + if (errMesage) { + return ( +
+

Error...

+ +
+ ); + } return (
@@ -176,7 +297,7 @@ const PhoneAccept = ({ : locale === 'ENG' ? 'Loan calculator' : 'Karzyň kalkulýatory'} - {submitCardDetails['three-d-secure-number']} + {cardDetails ? '+99361454210' : submitCardDetails['three-d-secure-number']}

@@ -207,7 +328,10 @@ const PhoneAccept = ({ )}
-