9

私は PayPals IPN を使用して支払いを受け取り、処理し、transactionId を参照として保存しています。

私が開発しているシステムを介して支払いを返金できるようになる時が来ましたが、ここに苦労しています。

更新された PHP SDKのサンプルの payKey フィールドに transactionId を入力すると、GetPaymentDetails.php認証の詳細とアプリケーション ID が正しくなり、次のようになります。

Error ID: 580022
Domain: PLATFORM
Severity: Error
Category: Application
Message: Invalid request parameter: payKey with value [REMOVED (transactionId)]
Parameter: Array

これは、payKey を期待しているため、理解できます。これで、仕様に従って$pdRequest->payKey = $payKey;を変更できます。$pdRequest->transactionId = $payKey;これで、transactionId が transactionId として送信され、機能するはずですが、応答として次のように表示されます。

Error ID: 520002
Domain: PLATFORM
Severity: Error
Category: Application
Message: Internal Error

わかりました、何かが壊れています。私は彼らが現在 transactionId を参照として使用することを許可しておらず、ドキュメントを更新していないと思われます (通常)。私がこれを疑う理由は、私が使用した元の SDK に、trackingId と別の識別子だけでなく、transactionId のフィールドが含まれていたためです。しかし、更新された SDK は、payKey のみを要求するようになりました。

今、私は立ち往生しています。何千ものライブ transactionIds を収集しました。取引ごとにpayKeyを取得する方法、または元の問題を修正する方法を知っていますか.

ありがとう

より詳しい情報:

送信される HTTP ヘッダーは次のとおりです。

X-PAYPAL-SECURITY-SIGNATURE: [removed]
X-PAYPAL-SECURITY-USERID: [removed]
X-PAYPAL-SECURITY-PASSWORD: [removed]
X-PAYPAL-APPLICATION-ID: [removed]
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4
X-PAYPAL-DEVICE-IPADDRESS: 127.0.0.1
X-PAYPAL-MESSAGE-PROTOCOL: SOAP11
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4

で、内容はこちら

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body><PaymentDetailsRequest>
    <requestEnvelope>
        <errorLanguage>en_US</errorLanguage>
    </requestEnvelope>
    <transactionId>[removed]</transactionId>
</PaymentDetailsRequest></soap:Body>
</soap:Envelope>

https://svcs.paypal.com/AdaptivePayments/PaymentDetails
4

3 に答える 3

2

私は1つの提案があります:

すべてのトランザクション ID が DB に保存されているとします。

すべてのレコードをループし、トランザクション ID を取得し、トランザクション ID でペイキーを取得して、関連する注文を更新します。

次に、トランザクションとペイキーの値を 1 つのレコードにまとめることができます。

于 2013-04-09T12:23:33.643 に答える