I am using Authorise.Net for billing verification in my DotNetNuke site. I have an user from Norway who wants to pay, but he has umlauts (special characters from Norway alphabet like Ø in his billing address). During payment process, he received error code 3/2/33 ERROR Bill To Address is required. When I tested with normal aplphabet characters, I didn't receive this error. How should I resolve this problem? How should I code this umlaut?
Thank you in advance for any help.
11-30-2016 11:34 AM
Hi @alenan2013
What kind of encoding do you have going on in your application? Is your development environment set to any particular kind of encoding like UTF-8?
Have you tried any encoding of the special characters yourself? For example, what happens if you URLencode that character string before you send it?
12-02-2016 10:36 AM
Aaron, thank you for your interest and help. Yes, we have used UTF-8. Please suggest what to do. The code is:
Public Sub connectToServer()
Dim objRequest As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
parseParamList()
_result = String.Empty
objRequest.Method = "POST"
objRequest.ContentLength = _stList.Length
objRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
Dim myWriter As System.IO.StreamWriter = Nothing
Try
myWriter = New System.IO.StreamWriter(objRequest.GetRequestStream())
myWriter.Write(_stList)
'Dim serverPath As String = "c:\inetpub\wwwroot\Portals\0\IGD\Archive\Cards\"
'Dim fileStamp As String = Date.Now.ToString("yyyyMMddhhmmss")
'Dim fileName As String = String.Format("{0}{1}_cardCall.txt", serverPath, fileStamp)
'System.IO.File.WriteAllText(fileName, _stList)
passed = True
Catch e As Exception
passed = False
_errorMessage = e.Message
Exit Sub
Finally
passed = True
myWriter.Close()
End Try
Try
Dim objResponse As System.Net.HttpWebResponse = CType(objRequest.GetResponse(), System.Net.HttpWebResponse)
Dim sr As New System.IO.StreamReader(objResponse.GetResponseStream())
_result = sr.ReadToEnd()
sr.Close()
Dim resArray As String()
resArray = _result.Split("|")
responseCode = resArray(0).Trim()
responseReasonCode = resArray(2).Trim()
successMessage = resArray(3)
If (responseCode = "1") Then
'passed
passed = True
transactionID = resArray(6).Trim()
Else
errorMessage = "CODE: " & resArray(0) & "/" & resArray(1) & "/" & resArray(2) & "<br />" & "ERROR: " & resArray(3)
successMessage = String.Empty
transactionID = String.Empty
passed = False
End If
Catch ex As Exception
errorMessage = "Unable to connect the server " & ex.Message
successMessage = String.Empty
transactionID = String.Empty
passed = False
End Try
End Sub
12-02-2016 11:12 AM
Hi,
From that segment of code, it looks like that's just setting the request headers to indicate UTF-8 in the request sent to the server. However, I'm wondering what your code is doing encoding wise before the request even gets to the server.
I can verify that our system should be able to support at least ISO-8859-1 encoding, but that depends on getting the characters encoded correctly when they get sent to us.
You can try a couple of things here. You can change "UTF-8" to "ISO-8859-1" to signal to the server that things are ISO-8859-1 encoded and see if that makes a difference. You could also add an encoding pass on the input you receive to specifically encode it before sending it to us.
12-02-2016 11:59 AM
@Aaron, thank you very much, it works great :) I have used ISO-8859-1 and URLEncoding. Best regards!
12-08-2016 09:32 AM