0

わかりました Paypal は私を夢中にさせます。私は、彼らの「サンプル コード」を xcom の最新の領域 (または、最近彼らが呼んでいるもの) から直接取得し、DLL を問題なくインストールしました。次のように単純な TransactionSearch を実行しています。

protected void btnSearch_Click(object sender, EventArgs e)
    {

        GenerateCodeSOAP.TransactionSearch t = new GenerateCodeSOAP.TransactionSearch();
        String mysearch = t.TransactionSearchnCode(Convert.ToDateTime(dtStart.Text), Convert.ToDateTime(dtEnd.Text), "05S08011830926906");
        Response.Write("Results:<br/>" + mysearch);
        lblStatus.Text = "Finished";
    }

以下は、独自の API を使用して少しだけ変更したサンプル コードです。

public class TransactionSearch
{
    public TransactionSearch()
    {

    }

    public string TransactionSearchnCode(DateTime startDate, DateTime endDate,string transactionId)
    {

        CallerServices caller = new CallerServices();
        IAPIProfile profile = ProfileFactory.createSignatureAPIProfile();       

        // Set up your API credentials, PayPal end point, and API version.
                    profile.APIUsername = "[removed for security]";
        profile.APIPassword = "[removed for security]";
        profile.APISignature = "[removed for security]";
        profile.Subject = "[removed for security]";
        profile.Environment = "live";

        // Create the request object.
        TransactionSearchRequestType concreteRequest = new TransactionSearchRequestType();          
        concreteRequest.Version="92.0";

        // Add request-specific fields to the request.
        concreteRequest.StartDate = startDate;
        concreteRequest.EndDate = endDate.AddHours(23).AddMinutes(59).AddSeconds(59);
        concreteRequest.EndDateSpecified = true;
        //concreteRequest.TransactionID=transactionId;

        // Execute the API operation and obtain the response.
        TransactionSearchResponseType pp_response=new TransactionSearchResponseType();
        pp_response= (TransactionSearchResponseType) caller.Call("TransactionSearch", concreteRequest);
        return pp_response.Ack.ToString();

    }
}

何を試しても (何かを返すためだけに transactionid をコメントアウトしたことがわかります)、次の行に Object Reference Not Set エラーが表示されます。

pp_response= (TransactionSearchResponseType) caller.Call("TransactionSearch", concreteRequest);

私はそれが単なる「サンプルコード」であることを知っていますが、これはかなり簡単なようです。サンドボックス経由で試してみましたが、明らかにうまくいきませんでした。自分のペイパル アカウントにトランザクションがあるため、API 資格情報をセットアップしましたが、それでもうまくいきません。

4

1 に答える 1

0

何年もの間Paypalを行っていないので、これはより一般的です-デバッグして行にブレークポイントを置きます-リクエストが実際に行われた場合(またはリクエストの問題でリクエストが行われない場合)、PayPalからエラー応答が返されるはずです。

于 2012-07-25T19:06:48.070 に答える