private void GetPaymentURLResponse(IAsyncResult asr)
 {
     XmlRpcAsyncResult result = (XmlRpcAsyncResult) asr;
     BPProxy clientProtocol = (BPProxy) result.ClientProtocol;
     clientProtocol.Url = this.EndpointUri;
     try
     {
         XmlRpcRespStruct_BP t_bp = clientProtocol.EndgetPaymentURL(asr);
         this.mResponse = new XmlRpcBPResponse(t_bp.mMessage, t_bp.mSuccessCode, t_bp.mURL);
     }
     catch (Exception)
     {
         this.mResponse = new XmlRpcBPResponse("Login Server Unavailable, please try again later", 0, string.Empty);
     }
     try
     {
         if (this.FormsControl != null)
         {
             this.FormsControl.Invoke(new BPEndResponseDelegate(this.CallbackMethod.Invoke), new object[] { this, this.Response });
         }
     }
     catch (Exception exception)
     {
         string message = exception.Message;
     }
 }
 public void GetPaymentURL(IBPRequest req, BPEndResponseDelegate callbackHandler, Control ctrl)
 {
     this.FormsControl = ctrl;
     this.CallbackMethod = callbackHandler;
     this.mRequest = (XmlRpcBPRequest) req;
     BPProxy proxy = XmlRpcProxyGen.Create<BPProxy>();
     proxy.Url = this.EndpointUri;
     proxy.BegingetPaymentURL(this.mRequest.Request, new AsyncCallback(this.GetPaymentURLResponse), null);
 }