私はこれまでGoogleCheckoutを使用したことがなく、PayPalのみを使用しました。
あなたが探しているのはPayPalPaymentsProSDKです。
これにより、サーバーが支払いトランザクションの顔になります(通常のCheckout ExpressのようなPayPalサイトではありません)。
2フェーズコミットメカニズムを実装する必要があります。
2つの異なるアプローチをお勧めします。
a)サーバーで購入プロセスを開始し、データベースで「コミットされていない」状態の中間のままにすることができます。サーバーからPayPalに電話して、PPが電話を処理できるようにします。また、PPからの応答があり、その応答が支払いが受け入れられたことを意味する場合は、購入を確定します。このアプローチの問題は、アプリケーションがその時点でトランザクションを完了するか拒否するかを決定する必要があることです。これは、実際の購入トランザクションの動作とは異なります。PayPalは、単なるOK /エラーとは異なる応答をする場合があります。支払いが保留中の場合もあれば、警告付きでOKの場合もあります。
b)さらに信頼性が高いのは、PayPalに支払い状況を通知させることです。
前に説明したのと同じフローを変更して作成します。PayPalが支払いを処理し、肯定的な回答を提供したら、トランザクションIDをデータベースに保存しますが、何もコミットしません。トランザクションが完了したことだけをユーザーに伝えます。
PayPalサーバーへの呼び出しの一部として、使用できるパラメーターがあります。このパラメーターは、IPNリスナーURLと呼ばれます。
IPNは即時支払い通知を意味し、PayPalによって発信されたサーバーへのコールバックであり、アプリケーションは支払いステータスに関する即時情報を取得します。
保留中のトランザクションが受け入れられるか拒否される可能性があるため、これは非常に重要です。受け入れられた取引でさえ、あなたによって、またはあなたの購入者がPayPalに適した請求によってロールバックされるかもしれません。
PP IPNリスナーの実装方法についてさらに情報が必要な場合は、お知らせください。