申し訳ありませんが、これは少し遅れるかもしれませんが、念のため - 私は現在 "currencyCode" = > "AUD" を使用しており、サンドボックスで動作しています。
PayPalで利用できる通貨コードの完全なリストがあります。
あなたの場合、次のようになると思います。
$p->add_field('currencyCode', 'GBP');
IPN 自体に関するご質問については、正しい方向に進んでいるようです。それは、返されるデータと、個々のトランザクションに関心があるかどうか (アダプティブ ペイメントを使用している場合)、またはエラーなどでそれらすべてを元に戻そうとしているかどうかによって異なります。行うことは、すべての投稿データを単に表示またはログに記録して、それがどのように構築されているかを確認できるようにすることです。
また、PayPal がスクリプトにアクセスできるように設定する必要があります。次に、このスクリプトの完全な URL を「notify_url」パラメーターに渡し、PayPal に送信します。支払いが完了すると、PayPal は一連の情報をスクリプトに送信して、処理できるようにします。
残念ながら、私は PHP のバックグラウンドを持っていないので、必要な正確なコードを提供することはできません。また、本番環境に移行する前に調べておきたいセキュリティ問題がたくさんあることにも注意してください。その validateIPN 関数でこれを行うつもりがあるかどうかはわかりませんが、悪意のあるユーザーではなく PayPal からのものかどうかを確認できるようにする必要があります。1 つの方法は、カスタム属性を使用して値を渡し、PayPal にこれを返してもらうことですが、API 証明書などを使用する方がはるかに優れています。
まだお持ちでない場合は、PayPal が作成したいくつかのサンプル アプリケーションをチェックする価値があるかもしれません。かなりの数の PHP アプリケーションがあるようです。
他に必要なものがあれば教えてください。