2012-04-16 7 views
1

私がsetExpressCheckoutをしようとすると、ack =成功だがトークンリターンは得られない。私はJavaコードPaypal SetExpressCheckout Soap

ここ
-uri https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsd -p com.paypal.soap 

Javaへのリンクを生成するためにaxis2-1.6.1に使用するコマンドしhttps://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

ここ:

PayPalのAPIのバージョンは、ここでは、WSDLのリンク87.0 ですここSetExpressCheckoutの

ためのコードをAxis2の https://docs.google.com/open?id=0B97cB4uxjmztbGgxRER6VjBWcWc

を使用して生成されたコードここでは3210

私はACK成功を得るが、トークンがnullであるか

Date:17/04/2012 12:33:38 
CorrelationID:a7c9fe7283bd 
ack :Success 
token:null 

を取得した結果? ペイパルの担当者は、CorrelationID:a7c9fe7283bdに対してECトークンがすでに生成されていると述べています。

ありがとうございます。

答えて

1

私はsetExpressCheckoutResponse.getExtraElement()。getText()を使用してトークンを取得する必要があります。なぜsetExpressCheckoutResponse.getToken()はnullを返しますか?

0

あなたが言及したWSDLファイルに見れば、冒頭で次のように気づくでしょう:

<wsdl:definitions 
    ns:version="89.0" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    ... > 

使用しなければならないAPIのバージョンが89.0であることを意味 - それが指定のWHERE覚えていないがPayPal APIのドキュメントですが、これは必ずそこに記載されています。

私は最近JavaでSOAPを使用してPayPal Express Checkoutを設定することができましたので、この問題が発生した場合はお知らせください。

0

私はこの問題に出くわしたと答え(これは、C#のためであり、私はそれは、Javaに適用されるかどうかわからないのですが)が見つかりました:Webサービス用に生成されたコードで

https://www.x.com/developers/paypal/forums/soap/paypal-api-aa-and-net-wcf-undeserialized-fields

ルック( Reference.cs)、AbstractResponseTypeを見つけます。最後のプロパティはAny()です。 (プロパティを無視する)、これを一致させるために、属性を変更します。

[System.Xml.Serialization.XmlIgnoreAttribute()] 
    public System.Xml.XmlElement Any { 
     get { 
      return this.anyField; 
     } 
     set { 
      this.anyField = value; 
     } 
    } 

これに続いて、再コンパイルしてテストを再度、あなたは正しく設定トークンのプロパティを受けるべきです。

ウェブサービスコードを再生成した場合、この変更はもちろん置き換えられ、PayPalがこれを修正しない限り再処理する必要があります。ところで、私のWSDLのバージョン番号は98.0です。

ゲイリーデービス

関連する問題