title: 3D Secure processing issue using dotnetcharge
body: <p>I'm integrating a number of e-comm sites into different banks and decided the easiest method was to add in the dotnetcharge (www.dotnetcharge.com) library. It works well and means I can keep much of my code the same for each bank type and transaction.  However, their support is a bit sucky (4 emails sent, 1 reply) and I'm utterly baffled on the 3D Secure issue.</p>
  
  <p>Does anyone have experience with dotnetcharge and 3D Secure? I have set the MerchantURL and the actual 3D Secure screen comes up - but I'm unsure how to get the system to 'flow' properly. Does anyone have any code examples or even pointers in the right direction? Failing that, does anyone know how to make support respond!</p>
  
  <p>This particular integration is with SagePay, which also has God-awful documentation and support.</p>
  
  <p>Code for reference is as follows;</p>
  
  <pre><code>        Dim Amount As Decimal = ordertotal
          ' ApplySecure3D options:
          ' 0 = If 3D-Secure checks are possible and rules allow, perform the checks and apply the authorization rules. 
          ' 1 = Force 3D-Secure checks for this transaction only (if your account is 3D-enabled) and apply rules for authorization.
          ' 2 = Do not perform 3D-Secure checks for this transaction only and always authorize.
          ' 3 = Force 3D-Secure checks for this transaction (if your account is 3D-enabled) but ALWAYS obtain an auth code, irrespective of rule base.
          Dim ProtxLogin As String = "xxx"
          Dim ProtxPassword As String = "xxx"
          Dim ProtxApply3DSecure As Integer = 1
          Dim ProtxMerchantURL As String = "https://www.mydomain.com/processing/"
  
          Dim Number As String = txtCardNo.Text '//luhn/mod10 here.
          Dim AVS As String = txtCVN.Text
          Dim DD As String = "01"
          Dim MM As String = ddlValidTo_month.SelectedValue.ToString()
          Dim YY As String = ddlValidTo_year.SelectedValue.ToString()
  
          Dim ProcessingResult As Integer = 0
          Dim Protx As New dotnetCHARGE.CC()
  
          Protx.Login = ProtxLogin
          Protx.Password = ProtxPassword
          Protx.ApplySecure3D = ProtxApply3DSecure
          Protx.MerchantUrl = ProtxMerchantURL
  
          Dim AVSResponse As String = ""
          Dim CVV2 As String = ""
  
          Protx.OrderID = GoogleOrderNumber
          Protx.Month = MM
          Protx.Year = YY
          Protx.TransactionType = dotnetCHARGE.TransactionType.Sale
          Protx.Amount = ordertotal
          Protx.Number = Number
          Protx.Currency = "GBP"
          Protx.CustomerID = CustomerId
          '//loads of params removed for brevity
          Protx.ClientIP = Request.UserHostAddress.ToString()
          Protx.CardType = ddlCardType.SelectedValue.ToString()
          Protx.Description = "My Order"
          Protx.Code = AVS
          Protx.TestMode = True
          Protx.TransactionType = dotnetCHARGE.TransactionType.Sale
  
          ProcessingResult = Protx.Charge(Processor.Protx)
  </code></pre>
  
  <p>Help appreciated.</p>