
    )ig0                     8    d dl  d Zd Zd Zd Zd Zd Zd Zy	)
    )*c                     |  d| }|j                  d      }t        j                  |      j                  d      }d| S )z;
    Generate the Base64 encoded authorization header.
    :zutf-8zBasic )encodebase64	b64encodedecode)
client_keyclient_secretcombinedcombined_bytesbase64_encodeds        M/var/www/html/viyonapay/appservices/common/kyc_gateways/vayana_kyc_gateway.pygenerate_authorization_headerr      sK     Q}o.H__W-N%%n5<<WENN#$$    c                 $    t        | |      }d|dS )z;
    Prepare the standard headers for the API request.
    zapplication/json)zContent-TypeAuthorization)r   )r
   r   authorization_headers      r   prepare_headersr      s!     9]S*- r   c                    | dz   }t        d||       t        ||      }ddd}	 d|i}t        |d       t        j                  |||      }|j                  }	|j                         }
t        |
|	d	       d}d}d}d
}|	dk(  r\d}|
j                  di       }|j                  di       }|j                  d      }d}d}|j                  d      j                  d      }n2|	dk(  rd}n*|	dk(  r#|
j                  di       j                  dd      }nd}||||d||
d}|S # t        $ r.}t        dt        j                                d|d<   Y d}~|S d}~ww xY w)z
    PAN verification API.
    z/PanVerificationDetails:r    responseStatusresultPANNo#((((((((vayana REQUEST BODY )))))))jsonheaders$((((((((vayana RESPONSE BODY))))))))NA      PANResponser   nameVALIDSuccessaddresscombinedAddress  .Unauthorized access. Please check credentials.  errormessageBad Request*An Error occurred. Please try again later.)r   r&   r)   	panStatusisIndividualr   apiResponse!Error during request preparation:N
printr   requestspoststatus_coder   get	Exception	traceback
format_exc)get_base_urlr
   r   
pan_numberurlvayana_headervayanaIndividualPanDictvayana_request_bodyresponseresponse_statusvayana_response_jsonr   r&   r)   r2   r%   
resultrespr   es                      r   vayana_individual_pan_kycrJ      s    )
)C	*j-0 $J>M12bA)Y&
3!#HI==+>=V"..'}}"O5[\	c!N.22="EK$26J'DIFNN9-112CDG#EF#)--gr:>>y-XFAF -!/#
 '& Y193G3G3IJ,X)""	Ys   C7D 	E&#EEc                 j   | dz   }t        d||       t        ||      }t        d|       ddd}	 ||d}t        |d       t        j                  |||	      }	|	j                  }
|	j                         }t        ||
d
       d}d}d}d}|
dk(  r.d}d}|}|j                  d      dk(  rFd}|j                  d      }n2|
dk(  rd}n*|
dk(  r#|j                  di       j                  dd      }nd}||||||d}|S # t        $ r.}t        dt        j                                d|d<   Y d}~|S d}~ww xY w)z
    Aadhaar OTP send API.
    z/AadhaarOTPr   z	hearders:r   r   r   )AadhaarNumberNamer   r   z+((((((((vayana aadhar RESPONSE BODY))))))))r#   successr$   StatusAPPROVED	AccessKeyr+   r,   r-   r.   r/   r0   r1   )r   r   responseDataverifiedStatusmobileNumber	accessKeyr5   r   Nr6   )r?   r
   r   aadhaar_numberaadhaar_namerA   rB   vayanaIndividualAadharDictrD   rE   rF   rG   r   rS   rT   rQ   r   rR   rI   s                      r   vayana_aadhar_send_otprY   P   s{    
m	#C	*j-0 $J>M	+m$45!D'\0>U!#HI==+>=V"..'}}"O5bc	c!FN/L):5 &**;7	#EF#)--gr:>>y-XFAF (,($&
" *) \193G3G3IJ/["8,%%	\s   C	C; ;	D2#D--D2c                    | dz   }t        d||       t        ||      }ddd}		 ||||d}
t        |
d       t        j                  ||
|      }|j                  }|j                         }t        ||d	       d}d
}|dk(  rd}|}n2|dk(  rd}n*|dk(  r#|j                  di       j                  dd      }nd}|||d}	|	S # t        $ r-}t        dt        j                                dddcY d
}~S d
}~ww xY w)z$ 
    Aadhaar verification API.
    z/AadhaarVerificationr   r   r   r   )rL   rM   rQ   OTPr   r   z/((((((((vayana aadhar otp RESPONSE BODY))))))))Nr#   r$   r+   r,   r-   r.   r/   r0   r1   )r   rR   r   r5   r6   )r?   r
   r   rW   rV   r[   
access_keyrA   rB    vayanaIndividualAadharVerifyDictrD   rE   rF   rG   r   r   rI   s                    r   vayana_aadhar_verify_otpr^      s?    -
-C	*j-0 $J>M:;r'J$,
 , #	
 	!#HI ==+>=V"..'}}"O5fg c!N)F#EF#)--gr:>>y-XFAF -0,
( 0/ 
193G3G3IJB
 	

s   BC 	C7
"C2,C72C7c                    | dz   }t        d|||       t        ||      }ddd}	 d|i}t        |d       t        j                  |||      }|j                  }	|j                         }
t        |
|	d	       d}d}d}d}d}i }i }i }g }|	d
k(  rd}d}|
j                  di       }|j                  di       }|j                  d      j                  d      D ]H  }|j                  d      dd|j                  d      |j                  d      d}|j                  |       J |j                  d      }|j                         dk(  rd}nd}|j                  d      }n2|	dk(  rd}n*|	dk(  r#|
j                  di       j                  dd      }nd }||
g|||||d!}|S # t        $ r.}t        d"t        j                                d |d#<   Y d$}~|S d$}~ww xY w)%z#
    Company verification API.
    z/mca-detailedr   r   r   r   CINr   r   r!   r#   r$   r(   CINResponseresultsdirector_infocurrent_directorr&   designationdin_pan)directorNamedirectorPanNumberr)   re   dincompany_statusactiveActiveInactivemca_namer+   r,   r-   r.   r/   r0   r1   )r   rR   directorsListcompanyActualStatuscompanyStatuscompanyNamer   r5   r   N)r7   r   r8   r9   r:   r   r;   appendlowerr<   r=   r>   )r?   r
   r   	cinNumberrA   rB   vayanaCompanyVerifyDictrD   rE   rF   rG   r   r   rr   rp   rq   apiresponsera   directorsDictro   each_directorrI   s                         r   vayana_company_verify_datarz      s.    
&C	*js3 $J>M12bA;Y$i0!#HI==+>=V"..'}}"O5[\c!NF.22=DK%//)B7K!,!A!E!EFX!Y 4,008$&+//>#''	2 $$]34 !,0@ A"((*H4&(#
3K#EF#)--gr:>>y-XFAF ,01)#6*&#
 '& Y193G3G3IJ,X)""Ys   E4F 	G$#GGc                    | dz   }t        d||       t        ||      }ddd}d}	 ||d}	t        |	d       t        j                  ||	|      }
t        |
d	       |
j                  }|
j                         }t        ||d
       d}d}|dk(  r<|j                  d      dk(  rd}d}|j                  d      }nD|j                  d      }n2|dk(  rd}n*|dk(  r#|j                  di       j                  dd      }nd}|||g|d}|S # t        $ r.}t        dt        j                                d|d<   Y d}~|S d}~ww xY w)z 
    Bank verification API.
    z/BankAccountVerificationr   r   r   r   )	bankAccNobankCoder   r   zvayana RESPONSE BODY1r!   r#   IsValidTr$   r(   AccountHolderNameMessager+   r,   r-   r.   r/   r0   r1   )r   beneficiaryNamerR   r   r5   r   Nr6   )r?   r
   r   r|   r}   rA   rB   vayanaBankVerifyDictr   rD   rE   rF   rG   r   r   rI   s                   r   vayana_verify_bank_detailsr     s~    	//C	*j-0 $J>M./2>O$V,58L!#HI ==+>=Vh./"..'}}"O5[\c!#''	2D8!"" 4 8 89L M+//	:#EF#)--gr:>>y-XFAF ,-01	 
 $# V193G3G3IJ)UX&Vs   CD 	D=#D88D=N)appservices.common.utilr   r   rJ   rY   r^   rz   r    r   r   <module>r      s0    %%7#t7&r9
xH#T1 r   