2010-09-25 100 views
1

我使用dcramer-paypal的Dcramer的叉,我已經成功地設置它直到現在。我試圖將「paypal.pro.signals.payment_was_successful」連接到我編寫的監聽器,但它多次發送信號,導致我的應用程序出現錯誤。我已經嘗試將「dispatch_uid」添加到我的connect語句中,但它仍然會多次發送它......我做錯了什麼?我應該甚至使用這個信號?貝寶網站親(WPP)信號問題的Django的貝寶設置

+0

你可能是**更具體的瞭解錯誤**你?我查看了源代碼,這個信號被多次觸發,即。在views.py,helpers.py等 – bx2 2010-09-26 00:49:01

回答

1

這是目前非常簡單。 我註冊了信號在我的應用程序的init.py

在init.py

from paypal.pro.signals import payment_was_successful 
from listeners import paypal_payment_processed 

payment_was_successful.connect(paypal_payment_processed) 

在listeners.py

def paypal_payment_processed(sender, **kwargs): 
    print 'signal called' 

然後我的Django的貝寶包裝視圖包含以下內容:

def apartment_store_lease_step_4_content(request, apartment_id, lease_obj): 

item = { 
    "amt": total, 
    "custom": lease_obj.id , 
    "cancelurl" : "OMITTED", 
    "returnurl" : "OMITTED" 
} 

ctx = {   
    "lease_purchase" : lease_obj, 
    "contract" : contract 
} 
ctx.update(locals()) 


kw = { 
    "item" : item, 
    "payment_template" : "OMITTED", 
    "confirm_template" : "OMITTED", 
    "success_url" : "OMITTED", 
    "context": ctx 
} 

ppp = PayPalPro(**kw) 
return ppp(request) 
+0

一旦貝寶迴應,我看到「信號調用」兩次輸出。 – kaleb 2010-09-27 03:33:37

+1

Hey Kaleb:你可能想要編輯你的原始問題,而不是通過回答發佈代碼;你會以這種方式獲得更好的結果。 :-) – 2010-11-11 14:06:38