2016-10-10 11 views
0

私は現在、支払いを処理するためにNVP(paypalfunctions.php)でPayPalとの新しい統合に取り掛かっています。同じ統合は他のプロジェクトでも機能しますが、現在のプロジェクトでは失敗します。PayPal NVP統合 - 支払いが処理されない

説明:支払いリンクが正常に作成されます - Paypalへのリダイレクト - ログインし、額(1または5 EUR)を支払う - 成功URLにリダイレクトされます。

問題:ショップの口座や送金先の口座にはお支払いが見当たらず、私はPayPalからコールバックを受け取らないため、支払いは処理されない/受け入れられませんでしたが、Paypalからの情報はありません。

私が使用NVPの設定は最小限であり、配信アドレスdont必要:

$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType; 
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL; 
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType; 
$nvpstr = $nvpstr . "&NOSHIPPING=1"; 
$nvpstr = $nvpstr . "&BRANDNAME=MyName"; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CUSTOM=" . $paymentId; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_NOTIFYURL=https://my.callback.com"; 

URLが成功作成されると、すべての変数が設定されているが。

これはなぜ機能しないのでしょうか?

多くのおかげ

bert2002

答えて

0

あなたは、プロセスの最後のコールが欠落しているように聞こえます。流れは次のようになります。

  1. SetExpressCheckoutの最終DECPの呼び出しが正常に完了するまでは、お金が移動されません
  2. GetExpressCheckoutDetails
  3. DoExpressCheckoutPayment

サイドノート:REST API/SDKを使用していないため、タグが誤解を招くことがあります。

私はPayPal PHP SDKを持っていますので、これらのAPI呼び出しを非常に迅速かつ簡単に行うことができるので、今のように手作業で構築する必要はありません。私はそれを見てみることをお勧めします。私はあなたがそれを好きになると思う。

+0

こんにちは、ありがとうございます。私はCallShortcutExpressCheckout()を使って十分であるはずです(あるいは彼らは最後の週/月に何かを変更しました)、あるいは私はそれを全部間違えてしまいました。私は[リンク](https://devtools-paypal.com/integrationwizard/ecpaypal/code.php)をたどりましたが、あなたの機能は言及していません。 SDKを統合することができれば、SDKをチェックします。なぜ私がもう働いていないのか知りたいですか? – bert2002

+0

さて、私は方法を見つけましたが、そのような奇妙なものです。最初に私はすべての詳細を含むCallMarkExpressCheckout()を作成し、ユーザーは支払いを行い、DoExpressCheckoutPayment()でトークンとPayerIDを処理するReturnURLにリダイレクトされます。その後、支払いが承認されます。このワークフローは意味がありますか?別のプロジェクトでは、すべての2番目の部分がコールバックでハンドリングされ、ユーザーからのReturnUrlではハンドルされません。そのReturnUrlは奇妙なものです。 – bert2002

+0

私が概説したAPI名は実際の名前です。これらの関数は、SetExpressCheckoutリクエストで特定のことを行うためのものです。たとえば、SetExpressCheckoutのパラメータの1つを「Billing」または「Mark」に設定することができ、その設定方法に応じて使用環境が異なります。いずれにしても、これらの関数はSetExpressCheckoutを実行しており、おそらくリダイレ​​クトを処理していますが、SetExpressCheckoutで返されたReturnURLに返された後にDoExpressCheckoutPayment呼び出しを追加する必要があります。 –

関連する問題