2014-09-30 5 views
1

django 1.7 프로젝트에 django-paypal을 사용하고 있습니다. 이제 페이팔 샌드 박스에서 테스트하고 있습니다.django-paypal 지불 완료했지만 신호가 실패했습니다

결제 할 때마다 페이팔의 절차가 성공적이었습니다. 구매자 계정 금액이 공제 된 것을 볼 수 있으며, 사업 계좌에서 돈을 수락합니다.

기본적으로 사용자가 결제를 완료하면 일부 개체가 업데이트됩니다. 그러나 테스트 지불 중에 오브젝트가 업데이트되지 않았으며 지불 신호가 전혀 호출되지 않은 것으로 보입니다.

또 다른 이상한 것은 관리자가 ipn을 확인할 때 단일 트랜잭션에 대한 두 개의 레코드가 있음을 알 수 있습니다. 하나는 플래그가 붙지 만 오류 메시지가없고 다른 하나는 플래그가 지정되지 않지만 'txn_id xxxxx 중복'오류 메시지가 표시됩니다. 두 기록 모두 지불 상태가 '완료'였음을 나타냅니다.

나는 정말로 무엇이 잘못 될지 모른다. 문서는 문제를 디버그하는 방법을 보여주지 않는다. paypal.standard.ipn.signals에서 models.py 의 바닥에

가져 payment_was_successful

def Paypal_comfirm(sender, **kwargs): 
    ipn_obj = sender 
    if ipn_obj.payment_status == "Completed": 

     orderid = ipn_obj.invoice 
     theorder = get_object_or_404(Order, pk=orderid) 
     theorder.status = 'complete' 
     theorder.txn_id = ipn_obj.txn_id 
     theorder.date_pay = timezone.now() 
     theorder.save() 

payment_was_successful.connect(Paypal_comfirm) 
난 당신이 또한 payment_was_flagged 신호를 사용할 수 있지만 내가 함께 무엇을 해야할지하지 않는 것으로 나타났습니다

그것.

누구든지 이런 종류의 문제를 디버깅하는 방법을 알고 있습니까?

답변

0

밝혀지면 문제가되는 신호 기능입니다. settings.py에서 set debug = False (정상적으로 라이브 서버에 배포 할 때 수행 할 것임)가 설정되면 오류 로그가 표시되지 않습니다 (heroku에서). 내가 볼 수있는 것은 나쁜 500 오류 요청입니다, 이것은 무엇이 문제인지 알기가 매우 어렵습니다.

비슷한 문제가 발생하는 경우, ADMINS을 settings.py에 추가 할 수 있습니다.

귀하의 사이트에 오류가있을 때마다 귀하의 이메일로 전송하는 데 오류가 발생합니다. 물론 settings.py에도 이메일 세부 정보를 추가해야합니다.