2012-01-31 17 views
6

Używam piaskownicy PayPal, aby zrobić przycisk subskrypcji, a kiedy otrzymam odpowiedź IPN dla subskrypcji lub anulowania subskrypcji, $ _POST ['txn_id'] nigdy nie jest zestaw.

Więc nie wiem, w jaki sposób zidentyfikować transakcje przyjmować tylko unikalne te

Dzięki!

EDIT: na przykład wszystkie informacje, które mam w POST na subscr_cancel są: limitu1, amount3, address_status, subscr_date, payer_id, address_street, mc_amount1, mc_amount3, charset, address_zip, first_name, ponowić próbę, address_country_code, address_name, otify_version subscr_id zwyczaj payer_status firma address_country address_city verify_sign PAYER_EMAIL btn_id LAST_NAME address_state RECEIVER_EMAIL powtarzających txn_type nazwa_pozycji mc_currency residence_country test_ipn period1 period3 correlation_id

+0

Czy możesz potwierdzić, że rzeczywiście otrzymujesz IPN na adres IPN? Na przykład, czy są ustawione jakieś inne zmienne PayPal '$ _POST'? – Josh

+0

Tak Mam wszystkie inne dane w POST, nawet txn_type, więc to dziwne, że nie mam txn_id –

+0

Dzięki za edycję. To bardzo pomaga. Moje wyjaśnienie poniżej powinno wyjaśnić twój problem. – Josh

Odpowiedz

6

Według Table 2. Summary of subscription variables:

Dla zmiennych subskrypcyjnych, identyfikator transakcji (txn_id) jest dostępna tylko dla USD płatności i Wielowalutowy typów transakcji płatności (txn_type).

Zgodnie z oczekiwaniami, PayPal nie wyśle ​​txn_id do IPN dla danego rodzaju transakcji, subscr_cancel i będzie tylko wysłać txn_id jeśli typ transakcji jest subscr_payment.

Aby uzyskać więcej informacji na temat zmiennych przesyłanych do adresu URL IPN na podstawie transakcji, należy zapoznać się z IPN and PDT Variables.

+0

Dzięki! Ok, więc nie ma sposobu, aby zidentyfikować transakcję typu subscr_cancel, aby upewnić się, że jest wyjątkowa? –

+0

Jeśli masz własną metodę unikatowej identyfikacji transakcji lub masz identyfikator transakcji z transakcji płatniczej, możesz wysłać własne zmienne do PayPal, które powróci do IPN. - Możesz użyć 'invoice' lub' custom', a zobaczysz je w swoim IPN. – Josh

+0

OK, dziękuję za pomoc;) –

0

Czy można sprawdzić $_REQUEST['txn_id'] ponieważ może to być wysyłane do serwera poprzez GET.

+0

Tak, właśnie przetestowałem to teraz $ _GET ['txn_id'] i $ _REQUEST ['txn_id'] i nie są ustawione –