2012-08-06 4 views
0

이 질문에 답변 해 주신 분들께 감사드립니다. 저는 장고 e- 러닝 서비스를 운영하고 있습니다.이 서비스는 90 일 동안 지속되는 일회성 지불 가입을 필요로합니다. 내 결제 통합에 django-paypal을 사용했습니다. 내 지불 방식으로 웹 지불 표준 (Web Payments Standard)에서 IPN (Instant Payment Notification)을 사용합니다. 내가 자동으로 90 일 구독을 "만료"하는 방법을 알아 내려고 노력하고 있어요Django Paypal 서브 스크립 션

def purchase_success(sender, **kwargs): 
    ipn_obj = sender 
    student = User.objects.get(username=str(ipn_obj.custom)) 
    permission = Permission.objects.get(name="Subscribed") 
    student.user_permissions.add(permission) 
payment_was_successful.connect(purchase_success) 

: -

문제는 IPN 신호 payment_was_successful 수신에, 나는 다음과 같은 권한을 신호. 예 :

permission - Permission.objects.get(name="Subscribed") 
student.user_permissions.remove(permission) 
+0

관련 모델에'subscription_date '를 추가하고 체크해보세요. 또한 a) 구독 요금 및 패턴을 모니터링하고, b) 나중에 다른 길이를 제공하려면'subscription_type' 또는'subscription_duration'을 추적하기 위해 다른 열을 나중에 추가하십시오. – elithrar

+0

예. 감사합니다. 나는 그 일을 생각하고 있었다. 그러나 나는 나를 위해 날짜를 확인하는 함수를 호출해야 할 것입니다. 자동으로 할 수있는 방법이 있습니까? – user1578053

+0

django 프로젝트 내에서 실행하지 않을 것입니다. 이 작업은 모든 사용자에 대해 매일 실행되어 구독이 종료되는지 확인해야합니다. –

답변

0

테스트 한 내용이 아니지만 내가 아는 것으로부터 작동 할 수 있습니다. https://github.com/johnboxall/django-paypal/blob/master/README.md#using-paypal-payments-standard-with-subscriptions

"p3": 90,       # duration of each unit (depends on unit) 
"t3": "D",       # duration unit ("D for Day") 

당신의 신호가 아마 payment_was_successful되지 않습니다하지만이 중 하나가 될 :

페이팔 당신을 위해 구독을 처리 할 수있는

subscription_cancel - Sent when a subscription is cancelled. 
subscription_eot - Sent when a subscription expires. 
subscription_modify - Sent when a subscription is modified. 
subscription_signup - Sent when a subscription is created. 

행운을 빌어 요, 내가 찾은 장고 - 페이팔 아주 혼란스러워!

관련 문제