
    g                     L   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 ddl
mZmZ d dlmZ d dlZd dlZd dlZd d	lmZ  ej(                  e      Zd
ZdZerer e j2                  eef      ZndZej7                  d       ed        Zed        Zeed               Zd Zd Z y)    N)settings)renderredirect)login_required)JsonResponse   )WalletWalletTransaction)csrf_exempt)Decimalrzp_test_qcFb099Pizad7Sz2ZULiDyrWgcu6GVYILGmVbt)authu:   ❌ Razorpay client not initialized. API keys are missing!c           	      &   t         j                  j                  | j                        \  }}| j                  j                  }t
        j                  j                  | j                        j                  d      }t        | d|t        ||d      S )N)userz-created_atzwallet/wallet.html)walletrazorpay_keyuser_idtransactions)
r	   objectsget_or_creater   idr
   filterorder_byr   RAZORPAY_KEY_ID)requestr   createdr   r   s        (/var/www/skyplay_api_hub/wallet/views.pywallet_viewr      s     nn222EOFGllooG$,,333FOOP]^L'/FTcpw  LX  2Y  Z  Z    c                 h   | j                   dk7  rt        ddid      S t        s$t        j	                  d       t        ddid      S 	 t        j                  | j                        }t        |j                  d	d
            dz  }|j                  dd      }|d
k  rt        ddid      S t        j                  dt        j                          t        j                  j                  ||dd      }t        j                  d|        t        |      S # t        j                   j"                  $ r:}t        j	                  dt%        |              t        ddid      cY d }~S d }~wt&        $ r:}t        j	                  dt%        |              t        ddid      cY d }~S d }~ww xY w)NPOSTerrorzMethod not allowedi  statusu#   ❌ Razorpay client not initializedzRazorpay client not initialized  amountr   d   currencyINRzInvalid amount  u   🔑 API Key: r   )r'   r)   payment_captureu   ✅ Razorpay Order Created: u   ❌ Razorpay API Error: zRazorpay authentication failedi  u   ❌ Unexpected Error: zInternal server error)methodr   razorpay_clientloggerr#   jsonloadsbodyintgetinfor   r   ordercreaterazorpayerrorsBadRequestErrorstr	Exception)r   datar'   r)   r6   es         r   	add_moneyr?   $   s   ~~W&:;CHH:;W&GHQTUULzz',,'TXXh*+c188J.Q;*: ;CHH 	nX%=%=$>?@  %%,,  .
 
 	25':;E""??** U/Ax89W&FGPSTT L-c!fX67W&=>sKKLs8   
A"D -A+D F16/E+%F1+F17/F,&F1,F1c           
         	 t        j                  | j                  j                  d            }t        j                  d|        |j                  d      }|j                  d      }|j                  d      }|r|r|st        d      t        j                  j                  |||d      }t        j                  j                  |      }|j                  dd	      d
z  }|d	k(  rt        d      t        j                  j                  | j                         \  }}	|xj"                  t%        |      z  c_        |j'                          t)        | j                   |d|j"                  |||d      }
	 |
j'                          t        j                  d|
        t1        ddid      S # t*        $ r:}t        j-                  dt/        |              t1        ddid      cY d }~S d }~ww xY w# t2        j4                  j6                  $ r:}t        j-                  dt/        |              t1        ddid      cY d }~S d }~wt        $ rC}t        j-                  dt/        |              t1        dt/        |      id      cY d }~S d }~wt*        $ r+}t        j-                  dt/        |              Y d }~y d }~ww xY w)Nzutf-8u    🔍 Payment Verification Data: razorpay_order_idrazorpay_payment_idrazorpay_signaturez Missing required payment details)rA   rB   rC   r'   r   r(   z*Invalid order amount fetched from Razorpay)r   creditT)r   r'   transaction_typebalance_after_transactionrB   rC   rA   payment_verifiedz Transaction saved successfully: zError saving transaction: r#   zError saving transaction recordr&   r$   messagez1Payment verified and wallet updated successfully.   z(Razorpay Signature Verification Failed: z&Payment signature verification failed.r+   zValidation Error: zError: )r0   r1   r2   decoder/   r5   r4   
ValueErrorr.   utilityverify_payment_signaturer6   fetchr	   r   r   r   balancer   saver
   r<   r#   r;   r   r8   r9   SignatureVerificationError)r   r=   rA   rB   rC   resultorder_detailsr'   r   r   transactionr>   s               r   verify_paymentrU   L   sm   =)zz',,--g676tf=> !HH%89"hh'<=!XX&:; (;CU?@@ ((AA!2#6"4C
  (--334EF""8Q/#5Q;IJJ !..66w||6L'&/) (%&,nn 31/!	
	ZKK:;-HI Y([\ehii  	ZLL5c!fX>?*K LUXYY	Z ??55 ]?AxHIW&NOX[\\ ;)#a&23Wc!f-c:: )ws1vh'(()sl   E3G3 6(F- G3 -	G06/G+%G0&G3 +G00G3 3K/I?KK8J	KK!KKc                     t        | d      S )Nzwallet/success.htmlr   r   s    r   payment_successrY      s    '011r    c                     t        | d      S )Nzwallet/error.htmlrW   rX   s    r   payment_errorr[      s    './/r    )!r8   django.confr   django.shortcutsr   r   django.contrib.auth.decoratorsr   django.httpr   modelsr	   r
   django.views.decorators.csrfr   loggingr0   sysdecimalr   	getLogger__name__r/   r   RAZORPAY_SECRETClientr.   r#   r   r?   rU   rY   r[    r    r   <module>rj      s       - 9 $ - 4   
  
		8	$ ,,%hooO_+MNOO
LLMNZ Z #L #LN >)  >)D20r    