2012-01-31 49 views
6

我正在使用PayPal沙箱做一個訂閱按鈕,然後當我得到IPN響應訂閱或訂閱取消$ _POST ['txn_id']永遠不會組。

所以我不知道如何識別交易只接受唯一的個

謝謝!

編輯:比如所有的,我曾在專爲subscr_cancel的信息是:amount1,AMOUNT3,address_status,subscr_date,payer_id,address_street,mc_amount1,mc_amount3,字符集,address_zip,FIRST_NAME,重試,address_country_code,ADDRESS_NAME,otify_version subscr_id 定製 payer_status 業務 ADDRESS_COUNTRY ADDRESS_CITY verify_sign PAYER_EMAIL btn_id 姓氏 ADDRESS_STATE RECEIVER_EMAIL 重複 txn_type ITEM_NAME mc_currency residence_country 的test_ipn PERIOD1 period3 CORRELATION_ID

+0

您能確認您的IPN網址確實收到IPN嗎?例如,是否設置了其他PayPal $ _POST變量? – Josh 2012-01-31 16:12:02

+0

是的,我得到了所有其他數據在POST,甚至txn_type,所以這很奇怪,我沒有txn_id – 2012-01-31 16:26:36

+0

感謝您的編輯。這有很大幫助。我在下面的解釋應該清除你的問題。 – Josh 2012-01-31 17:12:24

回答

6

根據Table 2. Summary of subscription variables

認購變量,交易ID(txn_id)只適用於美元付款和 多幣種付款交易類型(txn_type)。

正如預期的那樣,PayPal將不會發送txn_id您IPN的交易類型,subscr_cancel,並將只發送txn_id如果交易類型是subscr_payment

有關根據您的交易將哪些變量發送到您的IPN URL的進一步說明,請查看IPN and PDT Variables

+0

謝謝!好吧,所以沒辦法確定subscr_cancel類型的事務以確保它是唯一的? – 2012-01-31 17:13:58

+0

如果您有自己唯一識別交易的方法,或者您有支付交易中的交易ID,則可以將自己的變量發送給PayPal,PayPal將返回到您的IPN。 - 您可以使用「發票」或「自定義」,您將在IPN中看到這些信息。 – Josh 2012-01-31 17:17:00

+0

好的非常感謝您的幫助;) – 2012-01-31 17:32:10

0

你檢查$_REQUEST['txn_id'],因爲這可以通過GET被髮送到服務器。

+0

是的,我剛剛測試它$ _GET ['txn_id']和$ _REQUEST ['txn_id'],他們沒有設置 – 2012-01-31 15:56:37