
    ~Mg{(                     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        L/var/www/html/viyonapay/appservices/common/kyc_gateways/atlas_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
k(  rd}|
j                  di       }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
    PAN verification API.
    z/PanVerificationDetails:r    responseStatusresultPANNo"((((((((atlas REQUEST BODY )))))))jsonheaders#((((((((atlas RESPONSE BODY))))))))      PANResponse  .Unauthorized access. Please check credentials.  errormessageBad Request*An Error occurred. Please try again later.!Error during request preparation:r   N
printr   requestspoststatus_coder   get	Exception	traceback
format_exc)get_base_urlr
   r   
pan_numberurlatlas_headeratlasIndividualPanDictatlas_request_bodyresponseresponse_statusatlas_response_jsonr   r   es                 r   atlas_individual_pan_kycr@      s7    )
)C	*j-0 #:}=L01R@X%z2 "FG==+=|=T"..&mmo!?4YZc!N(,,]B?F#EF#(,,Wb9==iWFAF -"

 &% X193G3G3IJ+Wx(!!	Xs   B%C 	D#C==Dc                    | dz   }t        d||       t        ||      }t        d|       ddd}	 ||d}t        |d       t        j                  |||	      }	|	j                  }
|	j                         }t        ||
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<   Y d}~|S d}~ww xY w)z
    Aadhaar OTP send API.
    z/AadhaarOTPr   z	hearders:r   r   r   )AadhaarNumberNamer   r   r!   r"   r#   r%   r&   r'   r(   r)   r*   r+   r,   r   Nr-   )r6   r
   r   aadhaar_numberaadhaar_namer8   r9   atlasIndividualAadharDictr;   r<   r=   r>   r   r   r?   s                  r   atlas_aadhar_send_otprG   C   s3    
m	#C	*j-0 #:}=L	+l#34 C[/=|T "FG==+=|=T"..&mmo!?4YZc!N(F#EF#(,,Wb9==iWFAF -%
!
 )( [193G3G3IJ.Z!(+$$	[s   BC 	C?#C::C?c                    | dz   }t        d||       t        ||      }ddd}t        | ||||      }	|	j                  d      dk(  r|	j                  d      j                  d	      }
|
r	 |||
|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 dddS d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   r   r#   r   	AccessKey)rB   rC   rI   OTPr   r   r!   Nr"   r%   r&   r'   r(   r)   r*   r+   r,   zAccess Key not found.zInvalid initial response.)r.   r   rG   r2   r/   r0   r1   r   r3   r4   r5   )r6   r
   r   rE   rD   rJ   r8   r9   atlasIndividualAadharVerifyDictr<   
access_keyr;   r=   r>   r   r   r?   s                    r   atlas_aadhar_verify_otprM   r   s    -
-C	*j-0 #:}=L9:b&I#"<
M.ZfhH||$%*\\(+//<
+ &4(!+	&" (*NO $==3E|=\"*"6"6&.mmo#)?<ab "#"c)%&N0F$+MF$+044WbAEEiQ^_FIF '5$3/
 76 #$1   1
 	
  99;O;O;QR&'J s   *BD 	E"E :E Ec                    | dz   }t        d||       t        ||      }ddd}	 d|i}t        |d       t        j                  |||      }|j                  }	|j                         }
t        |
|	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<   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%   r&   r'   r(   r)   r*   r+   r,   r   Nr-   )r6   r
   r   
cinNuumberr8   r9   atlasCompanyVerifyDictr;   r<   r=   r>   r   r   r?   s                 r   atlast_company_verify_datarR      s)    
&C	*j-0 #:}=L01R@X#Z0 "FG==+=|=T"..&mmo!?4YZc!N(F#EF#(,,Wb9==iWFAF -"

 &% X193G3G3IJ+Wx(!!Xs   BB; ;	C2#C--C2c                    | dz   }t        d||       t        ||      }ddd}	 ||d}t        |d       t        j                  |||      }	|	j                  }
|	j                         }t        ||
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<   Y d}~|S d}~ww xY w)z 
    Bank verification API.
    z/BankAccountVerificationr   r   r   r   )	bankAccNobankCoder   r   r!   r"   r#   r%   r&   r'   r(   r)   r*   r+   r,   r   Nr-   )r6   r
   r   rT   rU   r8   r9   atlasBankVerifyDictr;   r<   r=   r>   r   r   r?   s                  r   atlas_verify_bank_detailsrW      s,    	//C	*j-0 #:}=L-."=U+4(K "FG ==+=|=T"..&mmo!?4YZc!N(F#EF#(,,Wb9==iWFAF -

 #" U193G3G3IJ(TH%Us   BB< <	C3#C..C3N)appservices.common.utilr   r   r@   rG   rM   rR   rW    r   r   <module>rZ      s0    %%*"Z,%^F
R)"V*r   