2011-05-17 24 views
1

我目前使用Authorize.net使用Card Present設置處理信用卡。最重要的是該卡正在處理中,但是當我使用具有不同到期日期或不同CVS號碼的同一張卡時,該卡仍在處理中。這不應該發生。這是我在VB.NET中使用的代碼。通過Authorize.Net批准,但過期日期和CVS編號不正確

我是否缺少任何設置?此交易處於測試模式。

Public Sub New(ByVal authID As String, _ 
        ByVal authPassword As String, _ 
        ByVal authTransKey As String, _ 
        ByVal serverType As AuthServerTypeEnum, _ 
        ByVal cardHolderName As String, _ 
        ByVal cardNumber As String, _ 
        ByVal expiryMonth As String, _ 
        ByVal expiryYears As String, _ 
        ByVal issuenumber As Integer, _ 
        ByVal cvs As Integer, _ 
        ByVal issueMonth As String, _ 
        ByVal issueYear As String, _ 
        ByVal fullName As String, _ 
        ByVal address1 As String, _ 
        ByVal address2 As String, _ 
        ByVal townCity As String, _ 
        ByVal county As String, _ 
        ByVal country As String, _ 
        ByVal postCode As String, _ 
        ByVal amount As String) 

     Me._AuthServerType = AuthServerTypeEnum.Test 
     'Me._AuthLoginID = "xxxxxx" 
     'Me._AuthTransKey = "xxxxxx" 
     Me._AuthLoginID = "xxxxxx" 
     Me._AuthTransKey = "xxxxxx" 

     Dim objInf As New NameValueCollection(30) 
     Dim objRetInf As New NameValueCollection(30) 

     objInf.Add("x_version", _AuthVersion) 
     objInf.Add("x_delim_data", "True") 
     objInf.Add("x_login", Me.AuthLoginID) 
     objInf.Add("x_password", Me.AuthPassword) 
     objInf.Add("x_tran_key", Me.AuthTransKey) 
     objInf.Add("x_relay_response", "False") 



     Select Case Me.AuthServerType 
      Case AuthServerTypeEnum.Live 
       objInf.Add("x_test_request", "false") 
      Case Else 
       objInf.Add("x_test_request", "True") 
     End Select 

     objInf.Add("x_delim_char", ",") 
     objInf.Add("x_encap_char", "|") 

     objInf.Add("x_first_name", fullName) 
     'objInf.Add("x_last_name", "Patel") 
     objInf.Add("x_address", address1) 
     objInf.Add("x_city", townCity) 
     objInf.Add("x_state", county) 
     objInf.Add("x_zip", postCode) 
     objInf.Add("x_country", country) 

     objInf.Add("x_description", "Description of Order") 

     objInf.Add("x_card_num", cardNumber.Replace(" ", "")) 
     objInf.Add("x_exp_date", expiryMonth.ToString & "/" & expiryYears.ToString) 
     objInf.Add("x_market_type", "2") 
     objInf.Add("x_device_type", "5") 
     objInf.Add("x_response_format", "1") 

     objInf.Add("x_card_code", cvs) 

     objInf.Add("x_method", "CC") 
     objInf.Add("x_type", "AUTH_CAPTURE") 
     objInf.Add("x_amount", "1") 

     objInf.Add("x_currency_code", "USD") 

     Dim objRetBytes() As Byte 
     Dim objRetVals() As String 
     Dim strError As String = String.Empty 

     Try 

      objRetBytes = Me.WebClientRequest.UploadValues(Me.WebClientRequest.BaseAddress, objInf) 
      objRetVals = System.Text.Encoding.ASCII.GetString(objRetBytes).Split(",".ToCharArray()) 

      If True Then 

      End If 

     Catch ex As Exception 

     End Try 

    End Sub 

回答

2

這不是一個編碼問題。

錯誤的到期日期和/或CVV號碼不一定會導致交易被拒絕。由於客戶提供不正確的到期日期並不罕見,因此許多銀行不會因此而拒絕銷售。此外,CVV只是確定每筆交易欺詐風險的工具。不匹配僅僅意味着風險的可能性更高,由商家決定是否要接受或拒絕交易。但交易不會被拒絕,因爲它不是大多數髮卡銀行批准過程中的一個因素。

+0

該公司wnats到期日和安全號碼處理,所以我該怎麼辦?,謝謝你回到我身邊。 – redoc01 2011-05-17 16:11:44

+0

@Trikam我沒有經驗卡存在,所以希望這是有道理的,適用於你。如果刷卡,您可以在屏幕上捕獲並顯示到期日期。然後收銀員可以驗證它是否與卡上的浮雕相匹配。至於CVV號碼,我不知道有任何方法來驗證它,然後驗證它是否正確輸入(假設它是一個鍵控事務)。交易處理完成後,您將收到一個指示CVV編號是否正確的回覆。如果不是,則可以顯示警告,並且如果需要,則始終使交易無效。 – 2011-05-17 16:23:25

+0

這是否仍然如此? – Samyer 2018-02-13 16:57:15