cancel
Showing results for 
Search instead for 
Did you mean: 

CVV and x_card_code

I am using the DPM method for proccessing payements via Authorize.net, everything is working fine other than the CVV field, in out merchant terminal we have it set to decline transactions if the number does not match with the card company (Does NOT Match (N)). I am also sending it a field x_card_code.

 

However after numerous conversations with authorize they say they are not recieving the field?

 

        <form id='cardpayment' method='post' action='https://secure.authorize.net/gateway/transact.dll' >
        
            <input type='hidden' name='x_login' value='<?=$loginID?>' />
            <input type='hidden' name='x_amount' value='<?=$amount?>' />
            <input type='hidden' name='x_description' value='<?=$description?>' />
            <input type='hidden' name='x_invoice_num' value='<?=$order_id?>' />
            <input type='hidden' name='x_fp_sequence' value='<?=$sequence?>' />
            <input type='hidden' name='x_fp_timestamp' value='<?=$timeStamp?>' />
            <input type='hidden' name='x_fp_hash' value='<?=$fingerprint?>' />
            <input type='hidden' name='x_test_request' value='FALSE' />
            <!-- <input type='hidden' name='x_show_form' value='PAYMENT_FORM' /> -->
            
            <label for="card_num">Card Number</label>
            <input type="text" name='x_card_num' value='' id='card_num'>
                
            <label for="expiry">Expiry Date</label>
            <input type="text" name='x_exp_date' placeholder='mm/dd' id='expiry'>
                
            <label for="cvv">Security Code (CVV)</label>
            <input type="text" name="x_card_code" placeholder="CVV" id='cvv'>
            
            <input type="hidden" name="x_first_name" value='<?=$basket['billing_f_name']?>'>
            <input type="hidden" name="x_last_name" value='<?=$basket['billing_s_name']?>'>
            <input type="hidden" name="x_address" value="<?=$basket['billing_address_1'].' '.$basket['billing_address_2']?>">
            <input type="hidden" name="x_city" value="<?=$basket['billing_towncity']?>">
            <? if($basket['billing_country_id'] == 237){?>
                <input type="hidden" name="x_state" value="<?=state($basket['billing_state_id'])?>">
            <? }else{ ?>
                <input type="hidden" name="x_state" value="<?=$basket['billing_county']?>">
            <? } ?>
            <input type="hidden" name="x_zip" value="<?=$basket['shipping_postcode']?>">
            <input type="hidden" name="x_country" value="<?=country($basket['shipping_country_id'])?>">
            <input type="hidden" name="x_phone" value="<?=country($basket['telephone'])?>">
            <input type="hidden" name="x_cust_id" value="<?=$_user['id']?>">
                
            <input type="hidden" name="x_ship_to_first_name" value='<?=$basket['shipping_f_name']?>'>
            <input type="hidden" name="x_ship_to_last_name" value='<?=$basket['shipping_s_name']?>'>
            <input type="hidden" name="x_ship_to_address" value="<?=$basket['shipping_address_1'].' '.$basket['shipping_address_2']?>">
            <input type="hidden" name="x_ship_to_city" value="<?=$basket['shipping_towncity']?>">
            <? if($basket['shipping_country_id'] == 237){?>
                <input type="hidden" name="x_ship_to_state" value="<?=state($basket['shipping_state_id'])?>">
            <? }else{ ?>
                <input type="hidden" name="x_ship_to_state" value="<?=$basket['shipping_county']?>">
            <? } ?>
            <input type="hidden" name="x_ship_to_zip" value="<?=$basket['shipping_postcode']?>">
            <input type="hidden" name="x_ship_to_country" value="<?=country($basket['shipping_country_id'])?>">
            <input type="hidden" name="x_ship_to_phone" value="<?=country($basket['telephone'])?>">
                
            <input type="hidden" name="x_relay_response" value="TRUE">
            <input type="hidden" name="x_relay_always" value="TRUE">
            <input type="hidden" name="x_relay_url" value="https://www.mywebsite.com/cardpaymentresponse.php">           
            
            <input type='submit' class='btn-red' value='Pay Now' />
        </form>

Any help would be much appreciated. 

 

Tom

tomvance1
Contributor
18 REPLIES 18

what was the CVV response?

 

Read http://developer.authorize.net/tools/datavalidation/

temporary change the form post location to http://developer.authorize.net/tools/datavalidation/

and see if it getting post.

 

 

RaynorC1emen7
Expert

Thankyou for your reply,

 

I have never recived a CVV response it just authorizes the payment. 

 

I have used the URL you provided and as i expected the x_card_code field is posting. 

 

 

I have never recived a CVV response it just authorizes the payment.

 

It would be in the relay response. http://developer.authorize.net/guides/SIM/wwhelp/wwhimpl/js/html/wwhelp.htm#href=SIM_Trans_response....

x_cvv2_resp_code
Value: The card code verification (CCV) response code
Format:
M—Match
N—No Match
P—Not Processed
S—Should have been present
U—Issuer unable to process request

 

And it also on the merchant account settled/unsettled transaction detail.

I can check if a get a response on the relay URL, although this doesn't stop the successful transaction happening? 

Depend of what the response was. you said to reject on 'N', but it might be 'P', 'S', or 'U'

For our testing we are making sure it's the incorrect CVV code, surely this shoudl return N ? ( i am doing a test now too see the code) 

I just ran a test to see the value of thex_cvv2_resp_code however the field was either blank or not present? 

Hello @tomvance1

 

If you are testing in the sandbox, it does not actually connect to the card network but instead simulates the response.  The sandbox will accept any properly formatted CVV.   If you want to test specific conditions such as CVV responses, you'll need to use the Error Generation Guide

 

Richard 

Thanks @RichardH

 

I am not currently testing in the sandbox, the client is placing the orders themselves. 

 

Thanks,

Tom