質問

PayPalに接続するためにPHPのSoapClientクラスを使用しています。私にはいくつかの問題があります:

  1. 石鹸の呼び出しに渡すパラメーターはです array('ReturnAllCurrencies'=>0, 'Version'=>'63.0') しかし、以下のリクエストでわかるように、 63.0 入れられます <param1> それが何であれ。リクエストにはreturnalcurrenciesさえ表示されません。

このリクエストでは、aを実行しています GetBalance 指図:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ebay:api:PayPalAPI" xmlns:ns2="urn:ebay:apis:eBLBaseComponents">
      <SOAP-ENV:Header>
            <ns1:RequesterCredentials>
                  <ns2:Credentials>
                        <ns2:Username>xxxx</ns2:Username>
                        <ns2:Password>xxx</ns2:Password>
                        <ns2:Signature>xxx</ns2:Signature>
                  </ns2:Credentials>
            </ns1:RequesterCredentials>
      </SOAP-ENV:Header>
      <SOAP-ENV:Body>
            <ns1:GetBalanceReq/>
            <param1>63.0</param1>
      </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

soapclient :: __ getLastRequest()を介して上記のリクエストを見つけました。 PayPalのWebサイトの例のようには見えません。何がありますか GetBalanceReq 鬼ごっこ?なぜ *reqサフィックスがあるのですか?

2.生産サーバーとWSDLファイルを使用すると、PHPエラーが表示されます。

SOAP-ERROR:WSDLの解析:ロードできませんでした」https://www.paypal.com/wsdl/paypalsvc.wsdl '; :タグの予想を開始、 '<'が見つかりません

さらに、Firefoxの生産証明書URLにアクセスしようとする場合(https://api.paypal.com/2.0/)SSL_ERROR_HANDSHAKE_FAILURE_ALERTを取得します

wsdlファイルをダウンロードし、Soapclientの最初の引数でローカルバージョンを指すことになっていますか:: __ constructですか、それともPayPalホストコピーを指すことになっていますか?私はもともと後者を想定していましたが、今はわかりません

正しい解決策はありません

他のヒント

まず、「ReturnalCurrencies」は整数ではなく文字列である必要があります。また、GetBalanceRequestTypeフィールドをGetBalanceRequest要素内にラップする必要があります。質問の最初の部分と実用的なソリューションに関する詳細については、こちらをご覧ください。

必要なPayPalの単純なPHP SoapClientの例

質問の2番目の部分は、PayPalインフラストラクチャに関する一時的な問題のように聞こえます。ベストプラクティスは、WSDLのローカルコピーを使用せず、WSDLキャッシュをオンにして、PHPにいつ更新するかを決定させることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top