1

ここで明らかな何かが欠けているだけだと思いたいのですが、チェーン支払いを完了することができないようです (サンドボックスでPHP SDKを使用)。私は成功した応答を得ることができ、ユーザーを PayPal にリダイレクトすると、トランザクションの詳細は正常に表示されますが、ユーザーが支払いを完了しようとすると、恐ろしいエラーが発生します。

お支払いを完了できません。参加している Web サイトに戻って、もう一度やり直してください。

イライラするのは、送信されているリクエストデータをダンプし、それをドキュメントに記載されている例のデータと比較し、それらが事実上同一になるまでリクエストを微調整したことです。また、どのアカウントにも、支払いが試みられたか、保留中か、失敗したかを示すものは何も表示されません。

これは送信されているものです:

requestEnvelope.errorLanguage=en_US
&clientDetails.ipAddress=127.0.0.1
&clientDetails.applicationId=APP-80W284485P519543T
&actionType=PAY
&cancelUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Fcancel
&currencyCode=USD
&feesPayer=EACHRECEIVER
&memo=Test+Payment
&receiverList.receiver(0).amount=3.25
&receiverList.receiver(0).email=merchant%40domain.com
&receiverList.receiver(0).primary=1
&receiverList.receiver(1).amount=1.5
&receiverList.receiver(1).email=seller%40domain.com
&senderEmail=buyer%40domain.com
&returnUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Freturn

そして、応答は私にはうまく見えます:

PayPal\Types\AP\PayResponse Object
(
    [responseEnvelope] => PayPal\Types\Common\ResponseEnvelope Object
        (
            [timestamp] => 2013-07-28T23:25:52.676-07:00
            [ack] => Success
            [correlationId] => bf1ba2c8a50d4
            [build] => 6941298
        )

    [payKey] => AP-XXXXXXXXXXXXXXXXC
    [paymentExecStatus] => CREATED
    [payErrorList] => 
    [paymentInfoList] => 
    [sender] => 
    [defaultFundingPlan] => 
    [warningDataList] => 
    [error] => 
)

また、主要な受信者を指定しているので、アクション タイプを PAY_PRIMARY に設定しようとしましたが、とにかくそれが理想的です。

更新:これに関して PayPal で開いたチケットについてまだ応答がなく、この質問について誰もコメントしていないので、さらにテストを行いました。API Explorer で同じリクエストを生成すると、トランザクションは正常に完了します。しかし、まったく同じリクエストが API 経由で失敗します。API Explorer によって生成されたリクエストと SDK コードの違いは次のとおりであることを(生成されたヘッダーとリクエスト本文をコピーして貼り付けることにより) 確認しました

  • エクスプローラーによって作成されたヘッダーには、名前と値の間にスペースがあります
  • API Explorer にアプリケーション ID が含まれていない
  • 私の API 呼び出しには、ヘッダーと要求本文の両方にアプリケーション ID が含まれています

そもそもこの問題を解決するために追加されたアプリケーション ID 参照を削除しても、SDK API 呼び出しは機能しません。

SDK (PayPal によって提供される) によって生成された支払いが完了しない理由がわかりませんが、エクスプローラーが呼び出すと正確な呼び出しが正常に機能します。ヘルプやアドバイスをいただければ幸いです。

4

2 に答える 2

1

そのため、PayPal のマーチャント テクニカル サポートとこの問題に 1 か月近く取り組み (ほとんどの場合、まったく応答がありません)、エスカレーションでの応答を 2 週間近く待った後、問題は SDK 構成に起因することが判明しました。

API ドキュメントと SDK コード全体で、アプリケーション ID はapplicationIdとして参照されていますが、SDK では、代わりにacct1.AppIdとして構成ファイルに入力する必要があるようです。SDK の構成に関するこの wiki ページに出くわした後、私はこれを発見しました。これは 24 時間前には存在しませんでした。

構成を更新したら、エラーなしで支払いを承認できました。

于 2013-08-20T23:26:22.803 に答える
1

Chained Payments でこの正確な問題を引き起こす可能性のある別の原因に遭遇しました。

これが私の連鎖支払いの設定方法です。

メインアカウントは 100% 受け取りました。

  • 参照アカウントはそれから 50% を得ました。
  • パートナー 1 アカウントは 10% を獲得しました。
  • パートナー 2 のアカウントは 10% を獲得しました。
  • パートナー 3 アカウントは 10% を獲得しました。
  • パートナー 4 アカウントは 10% を獲得しました。
  • 10% がメイン口座に残り、取引手数料を支払っています。

これはサンドボックス (通常の価格) で完全に機能し、完全に完璧でしたが、Live でこのエラーが発生しました。

何が起きていたのかというと、Live の最終的な事前発表、テストでした。私たちは 1.00 ドルの取引金額を使用し、$.50$.10$.10$.10$.10送信$.10して料金を支払いました$.33。(執筆時点では、ペイパルの料金は2.9% + $.30) です。私たちの場合、インターネット上のすべての回答が問題を解決するわけではありませんでしたが、これは解決しました. トランザクション金額を 5 ドル (テスト用) に変更すると、0.45 ドルの手数料 (5 ドルに対して 0.45 ドルの手数料) を支払うために 0.50 ドルが残ったため、うまくいきました。

于 2014-11-17T23:45:45.587 に答える