1

私は自分のWebアプリケーション(C#.Net 4)にAdyenの定期支払いを実装しようとしていますが、Webサービスに比較的慣れていないため、正しい方法で実行しているかどうかはわかりません。

要するに、支払いプロバイダーはその目的のためにWSDL URLを公開し(https://pal-test.adyen.com/pal/Recurring.wsdl)、それをVisual Studio 2010にサービス参照として追加しました(つまり、サービス参照の追加>詳細> Webリファレンスを追加)

次に、テストページを作成して、接続が機能していることを確認し(以下のコードを参照)、以前に作成したテストサブスクリプションの詳細を取得しました。ただし、「listRecurringDetails」アクションを実行すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」というエラーメッセージが表示されて例外が発生し、どこが間違っているのかわかりません。

フィードバックは大歓迎です。

public partial class Store_ServiceTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Recurring proxy = new Recurring();
        ICredentials usrCreds = new NetworkCredential("[username]", "[password]");
        proxy.Credentials = usrCreds;

        try
        {
            RecurringDetailsRequest thisUserDetail = new RecurringDetailsRequest();
            thisUserDetail.merchantAccount = "[some reference]";
            thisUserDetail.shopperReference = "[some reference]";
            thisUserDetail.recurring.contract = "RECURRING";

            RecurringDetailsResult recContractDetails = proxy.listRecurringDetails(thisUserDetail);
            string createDate = recContractDetails.creationDate.ToString();
        }
        catch (Exception ex)
        {
            string err = ex.Message;
        }
        finally
        {
            proxy.Dispose();
        }        
    }
}
コールスタック

App_Web_4h0noljo.dll!Store_ServiceTest.Page_Load(object sender、System.EventArgs e)Line 38 C#

出力ウィンドウ

タイプ'System.Threading.ThreadAbortException'のファーストチャンス例外がmscorlib.dllで発生しましたタイプ'System.Threading.ThreadAbortException'の例外がmscorlib.dllで発生しましたが、ユーザーコードでは処理されませんでしたタイプ'システムのファーストチャンス例外。 App_Web_4h0noljo.dllでNullReferenceException'が発生しましたスレッド''(0x15d0)がコード0(0x0)で終了しました。

4

1 に答える 1

1

あなたのコードはよさそうだ。重要なのは、定期的なサービスをWeb参照ではなくサービス参照として追加することです。アプリの構成ファイルに次のものが含まれている場合に機能するはずです。

<system.serviceModel>
 <bindings>
     <basicHttpBinding>
         <binding name="AdyenHttpBinding">
           <security mode="Transport">
             <message clientCredentialType="UserName"/>
             <transport clientCredentialType="Basic" realm="Adyen PAL Service Authentication"> <!--Adyen PAL Service Authentication-->
               <extendedProtectionPolicy policyEnforcement="Never"/>
             </transport>
           </security>
         </binding>
     </basicHttpBinding>
 </bindings>
 <client>
   <endpoint address="https://pal-test.adyen.com/pal/servlet/soap/Payment" binding="basicHttpBinding" bindingConfiguration="AdyenHttpBinding" contract="Adyen.Payment.PaymentPortType" name="PaymentHttpPort"/>
   <endpoint address="https://pal-test.adyen.com/pal/servlet/soap/Recurring" binding="basicHttpBinding" bindingConfiguration="AdyenHttpBinding" contract="Adyen.Recurring.RecurringPortType" name="RecurringHttpPort"/>
 </client>
</system.serviceModel>

よろしくお願いいたします。SanderRasker(Adyen)

于 2012-11-14T13:10:40.317 に答える