Невозможно создать прокси-объект в WCF - PullRequest
0 голосов
/ 17 мая 2011

Я пользуюсь сервисом WCF по этой ссылке:

http://www.paymentsgateway.com/developerDocumentation/Integration/webservices/merchantservice.aspx#authentication

Теперь, если вы прокрутите эту ссылку внизу, они дадут пример создания клиента:

    private void CreateClient(int mid)
{
    ClientRecord client = new ClientRecord();
    client.MerchantID = MerchantID;
    client.FirstName = "Bob";
    client.LastName = "Smith";
    //other code describing client omitted

    try
    {
        using (ClientServiceClient proxy = new ClientServiceClient())
        {
            int id = proxy.createClient(Authenticate.GetClientAuthTicket(txtID.Text.Trim(), txtKey.Text.Trim()), client);
            Response.Write("Created Client ID = " + id.ToString());
        }
    }
    catch (Exception e)
    {
      Response.Write(e.Message);
    }
}

Теперь я не понимаю, что это такое: ClientServiceClient ??? Я создал реализацию так:

 public static PaymentsGatewayTest.Authentication GetClientAuthTicket (string APILogin, string key)
    {
        PaymentsGatewayTest.Authentication ticket = new PaymentsGatewayTest.Authentication();
        ticket.APILoginID = APILogin;
        ticket.UTCTime = DateTime.UtcNow.Ticks.ToString();
        ticket.TSHash = GenerateTSHash(ticket.APILoginID + "|" + ticket.UTCTime, key.Trim());
        return ticket;
    }

         private void CreateClient(int mid)
    {
        ClientRecord client = new ClientRecord();
        client.MerchantID = 11245;
        client.FirstName = "Bob";
        client.LastName = "Smith";
        //other code describing client omitted

        try
        {
            using (PaymentsAuthClient proxy = new PaymentsAuthClient())
            {

                int id = proxy.createClient(Authenticate.GetClientAuthTicket("", "", client));
                //Response.Write("Created Client ID = " + id.ToString());
            }
        }
        catch (Exception e)
        {
            //Response.Write(e.Message);
        }
    }

Я создал класс Singleton под названием PaymentsAuthClient, но, похоже, это не работает. Что я тут не так делаю ???

Спасибо за помощь в adv:)

1 Ответ

2 голосов
/ 17 мая 2011

Если вы перейдете по ссылкам на пример источника:

http://www.paymentsgateway.com/community/codeSamples/singlepostpage/10-05-05/C_Web_Service_Code_Sample.aspx

Вы увидите, что у них есть ссылка на службу на клиентскую веб-службу, и ClientServiceClient автоматически создается Visual Studio из ссылки.

Их пример - ссылка на сервис:

https://sandbox.paymentsgateway.net/WS/Client.svc

Если вы загляните в файл reference.cs в папке ServiceTestClient\Service References\ClientService, вы увидите, что клиент называется:

.....yournamespace.....ClientService.ClientServiceClient

имя службы - это пространство имен, поэтому я думаю, что вам, вероятно, нужно:

 .....yournamespace.....PaymentsAuthClient.ClientServiceClient
...