2014-07-18 65 views
1

我一直在嘗試將我的IPN設爲txn_type,然後payment_status,但由於不是每個IPN都有這些設備,我一直在收到例外。我的IPN可以使用哪些變量?在每個PayPal IPN中發送什麼變量?

txn_type未在退款IPN中發送。

+0

因爲我可以看到它是我的PayPal儀表板,'payment_status'表示已退款。 – User

+0

退款IPN的確有一個txn_id,它是退款交易ID,然後它還有一個parent_txn_id,這是退還的原始交易ID。 [這是一個示例](http://sandbox.angelleye.com/paypal/ipn/admin/raw-log-detail.php?id=13061)。 –

+0

如果'txn_type'爲空,你應該從'parent_txn_id'給出的事務的'txn_type'中得到它,這在數據庫中應該已經有了。但是,這會告訴你* original *'txn_type'是什麼。您可能必須將其與'payment_status'字段等結合使用 – EJP

回答

2

如您所述,txn_type不會隨每個IPN類型一起發送。實際上並沒有任何一個領域可以看到並始終依靠。你需要做的是設置邏輯來檢查不同的領域,它們的可用性以及它們的價值。

因此,我會檢查txn_type,如果存在,請根據該類型繼續處理。但是,如果它不存在,那麼可以使用其他參數來確定發生了什麼以及如何在邏輯中處理它。

例如,如果您查看this sample refund IPN data,您會看到它包含payment_status「Refunded」以及reason_code「refund」。因此,您的邏輯可以相應地查找這些值,然後它會知道這是退款。