连接到网关服务

时间:2012-03-16 18:59:26

标签: c# gateway

我正在尝试连接到网关服务:

当我将“添加Web引用”添加到它所说的服务时,服务说这个:

  

HTML文档不包含Web服务发现信息。

网关服务显示:

  

您已创建了一项服务。

     

要测试此服务,您需要创建一个客户端并将其用于   打电话给服务。您可以使用svcutil.exe工具执行此操作   命令行,语法如下:

     
    

svcutil.exe http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl

  
     

这将生成一个配置文件和一个包含的代码文件   客户端类。将这两个文件添加到客户端应用程序并使用   生成的客户端类来调用服务。例如:

     

C#

     

class Test {       static void Main()       {           GatewayClient客户端=新的GatewayClient();

    // Use the 'client' variable to call operations on the service.

    // Always close the client.
    client.Close();
} }
     

Visual Basic

     

班级考试       共享子主()           Dim client As GatewayClient = New GatewayClient()           '使用'client'变量来调用服务上的操作。

    ' Always close the client.
    client.Close()
End Sub End Class

所以,我尝试连接到这个:

http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl

这给了我以下列表:

  

方法AddABAccount()CloseBatch()CopyVaultAccount()   ProcessAccount()ProcessCustomer()ProcessCustomerAndAccount()   ProcessTransaction()ProcessVaultTransaction()UpdateABAccount(   )UpdateABSchedule()UpdateTransaction()

所以,我可以添加它......

但是,当我尝试按照他们的建议在代码中连接它时:

GatewayClient Client = new GatewayClient("wsBinding");
TRANSACTION oT = new TRANSACTION();
GATEWAYRESPONSE oGr = new GATEWAYRESPONSE();
oT.AMOUNT = 1;
oT.TEST = "FALSE"; // When testing, use TRUE
oT.METHOD = "CC"; // We'll use a credit card
oT.ORDERID = GetOrderID(); // Define a unique id for each transaction
oT.CODE = "0000"; // An Auth only transaction
//Process the Transaction
oGr = Client.ProcessTransaction(oT);
//Close the Client
Client.Close();
if (oGr.TRANSACTIONRESPONSE.RESPONSE_CODE == "1")
{
//Handle approved transaction
}
else if (oGr.TRANSACTIONRESPONSE.RESPONSE_CODE == "2")
{
//Handle declined transaction
}
else
{
//Handle transaction error
}

我无法访问GatewayClient,它说:

  

无法解析符号'GatewayClient'

我在哪里可以找到GatewayClient!?

1 个答案:

答案 0 :(得分:1)

添加 Web引用时,您尝试添加对旧式.asmx Web服务的引用。

您实际尝试引用的服务是WCF Web服务 - 在添加服务引用时从Visual Studio 2008开始WCF Web服务是首选选项(您必须深入了解某些"高级&# 34;添加.asmx Web服务的选项。

要使用为您创建的Web服务客户端代理,请确保在using语句中包含命名空间。

添加服务引用时设置的默认命名空间是" ServiceReference1",因此添加

using ServiceReference1;

应该解决你的问题。