
    qh	                     D    S SK r SSKJr   " S S\5      r " S S\5      rg)    N   )
BaseOAuth2c                   n    \ rS rSrSrSrSrSrSrSr	SS	/r
S
rSrS rS rSS jrS rS r\S 5       rSrg)PayPalOAuth2   zf
PayPal OAuth2 backend, docs at:
    https://developer.paypal.com/docs/connect-with-paypal/integrate/
zpaypal-oauth2user_idzhttps://www.paypal.com/connectz&https://api.paypal.com/v1/oauth2/tokenzDhttps://api.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1openidprofilePOSTFc                 D    SSU 30nU R                  U R                  US9$ )NAuthorizationzBearer )headers)get_jsonUSER_DATA_URL)selfaccess_tokenargskwargsauth_headers        M/var/www/html/env/lib/python3.13/site-packages/social_core/backends/paypal.py	user_dataPayPalOAuth2.user_data   s,    &',(@A}}T//}EE    c                 >   UR                  U R                  5      R                  S5      S   nU R                  UR                  SS5      UR                  SS5      UR                  SS5      5      u  p4nUR                  S/ 5      nU R	                  U5      nUUUUUS.$ )	N/name 
given_namefamily_nameemails)usernameemailfullname
first_name	last_name)getID_KEYsplitget_user_names	get_email)r   responser"   r$   r%   r&   r!   r#   s           r   get_user_detailsPayPalOAuth2.get_user_details   s    <<,2237;*.*=*=LL$LLr*LL++
'i
 h+v&  $"
 	
r   Nc                 @    SU R                   R                  SS5      S.$ )Nauthorization_codecoder   )
grant_typer1   )datar'   )r   states     r   auth_complete_params!PayPalOAuth2.auth_complete_params,   s!    .IIMM&"-
 	
r   c                     SR                   " U R                  5       6 R                  5       nSS[        R                  " U5      -   0$ )Nz{}:{}r   s   Basic )formatget_key_and_secretencodebase64urlsafe_b64encode)r   auths     r   auth_headersPayPalOAuth2.auth_headers2   s=     7 7 9:BBDV-E-Ed-K!KLLr   c                     USS.$ )Nrefresh_token)rA   r2    )r   tokenr   r   s       r   refresh_token_params!PayPalOAuth2.refresh_token_params6   s    !&oFFr   c                 b    U (       d  gS U  5       n[        XS   5      nUR                  S5      $ )Nr   c              3   V   #    U  H  oR                  S S5      (       d  M  Uv   M!     g7f)primaryFN)r'   ).0r#   s     r   	<genexpr>)PayPalOAuth2.get_email.<locals>.<genexpr>=   s     SVEyyE7R%%Vs   )	)r   value)nextr'   )r!   primary_emailsprimary_or_firsts      r   r+   PayPalOAuth2.get_email9   s2    SVSq	:##G,,r   rB   )N)__name__
__module____qualname____firstlineno____doc__r   r(   AUTHORIZATION_URLACCESS_TOKEN_URLr   DEFAULT_SCOPEREFRESH_TOKEN_METHODREDIRECT_STATEr   r-   r5   r>   rD   staticmethodr+   __static_attributes__rB   r   r   r   r      sn    
 DF8?N  y)M!NF
"
MG - -r   r   c                   $    \ rS rSrSrSrSrSrSrg)PayPalOAuth2SandboxB   zpaypal-oauth2-sandboxz&https://www.sandbox.paypal.com/connectz.https://api.sandbox.paypal.com/v1/oauth2/tokenzLhttps://api.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1rB   N)	rQ   rR   rS   rT   r   rV   rW   r   r\   rB   r   r   r^   r^   B   s    "D@GV r   r^   )r;   oauthr   r   r^   rB   r   r   <module>ra      s$     9-: 9-x, r   