PayPal SoapClientが機能していません
-
29-09-2019 - |
質問
PayPalに接続するためにPHPのSoapClientクラスを使用しています。私にはいくつかの問題があります:
- 石鹸の呼び出しに渡すパラメーターはです
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要素内にラップする必要があります。質問の最初の部分と実用的なソリューションに関する詳細については、こちらをご覧ください。
質問の2番目の部分は、PayPalインフラストラクチャに関する一時的な問題のように聞こえます。ベストプラクティスは、WSDLのローカルコピーを使用せず、WSDLキャッシュをオンにして、PHPにいつ更新するかを決定させることです。