正直なところ、今のところ実際の請求APIは避けることをお勧めします。私は私のクライアントでそれを使用してきました、そしてそれは今非常にバグがあります。
独自の請求書IDをCreateInvoiceまたはCreateAndSendInvoiceに渡すと、IPNを介して返される場合があります。PayPalはこれがなぜであるかを私に教えてくれないようです。
また、請求書を再送信する必要がある場合、それは苦痛になる可能性があります。SendInvoiceは1回だけ機能します。これを使用して同じ請求書を再度送信しようとすると、エラーが発生します。その時点での唯一のオプションは、最初に請求書を作成したときに返されたInvoiceURLを使用することです。
このURLを使用すると、PayPalにログインして請求書を表示するため、ゲストのチェックアウト(PayPalアカウントではなくクレジットカードで支払う)をこの方法で使用できない場合を除いて、これは問題ありません。
また、GetTransactionDetailsはPayPal請求書の請求書IDも返しません。私はそれをIPNの問題の回避策として使用しようとしましたが、その考えでシャットダウンされました。
正直なところ、独自の請求システムを設定することをお勧めします。実際の請求APIリクエストを作成するよりも、それほど多くの作業は必要ありません。
ユーザーに請求書アイテムを設定させ、基本的に独自のデータベースに請求書を作成させることができます。次に、サーバー上のURLを指す支払いボタンを使用して基本的なHTMLメールを生成します。このURLは、すべての注文の詳細を引き出して、画面に支払人に請求書を表示することができます。
支払い処理のためにこれにエクスプレスチェックアウトを組み込むことができ、上記のすべての問題が邪魔になりません。
パーミッションAPIを使用して、ユーザーがアプリに代わって電話をかけるためのアクセス許可を付与できるようにすることができます。ユーザーは、「リクエストAPIクレデンシャル」の下のPayPalアカウントプロファイルを介してこれを手動で行うこともできます。独自に作成する代わりに、API権限を付与することを選択し、承認する権限のチェックボックスとともにAPIユーザー名を入力します。
回答の概要:
- サンドボックスでAPI呼び出しを設定して、デモが機能するようにします。
- 承認のためにx.comにアプリケーションを送信します。これにより、ライブPayPalサーバーに対して使用するライブアプリIDが取得されます。
- ユーザーに、PayPalアカウント内から手動で、またはパーミッションAPIを使用してAPIを介してアプリにパーミッションを付与してもらいます。
- それに応じて、パーミッションAPIを介して取得したトークンを顧客に使用するようにシステムを構築します。