- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am having trouble doing split_tender transactions. I am using DirectPost because it is easier for me to work with at this time. Here is the content of my first post to:
https://test.authorize.net/gateway/transact.dll
x_allow_partial_auth => 1 x_description => Mine x_relay_response => TRUE x_delim_data => FALSE x_relay_url => http://XXXXXX.com/cgi-bin/transact_reflect x_invoice_num => 1234 x_email => julian at jlbprof dot com x_zip => 46225 x_city => Houston x_company => Julian Brown x_version => 3.1 x_address => 123 Fake St. x_card_num => 4111111111111111 x_exp_date => 10/2015 x_last_name => Brown x_first_name => Julian x_type => AUTH_CAPTURE x_state => TX x_cust_id => 3219 x_method => CC x_country => US x_phone => 713 555 1212 x_email_merchant => TRUE x_login => XXXXXX x_amount => 121.00 x_fp_sequence => 455668 x_fp_timestamp => 1357845637 x_fp_hash => 1e8d49130782e73c01568852c2d379c0
I am using a zip code trigger to get this to partially approve for $1.23 here is the response:
x_response_code :4: x_response_reason_code :295: x_response_reason_text :The amount of this request was only partially approved on the given prepaid card. An additional payment is required to fulfill the balance of this transaction.: x_avs_code :Y: x_auth_code :ALTRPC: x_trans_id :2182619104: x_method :CC: x_card_type :Visa: x_prepaid_balance_on_card :: x_prepaid_requested_amount :121.00: x_account_number :XXXX1111: x_first_name :Julian: x_last_name :Brown: x_company :Julian Brown: x_address :123 Fake St.: x_city :Houston: x_state :TX: x_zip :46225: x_country :US: x_phone :713 555 1212: x_fax :: x_email :julian at jlbprof dot com: x_invoice_num :1234: x_description :Mine: x_type :auth_capture: x_cust_id :3219: x_ship_to_first_name :: x_ship_to_last_name :: x_ship_to_company :: x_ship_to_address :: x_ship_to_city :: x_ship_to_state :: x_ship_to_zip :: x_ship_to_country :: x_amount :1.23: x_tax :0.00: x_duty :0.00: x_freight :0.00: x_tax_exempt :FALSE: x_po_num :: x_MD5_Hash :686F714EF3E47E6EF2FB87D55D385D52: x_cvv2_resp_code :: x_cavv_response :2: x_split_tender_id :109312: x_split_tender_status :Held: x_test_request :false:
I say way cool, and prepare my 2nd transaction
x_description => Mine x_relay_response => TRUE x_delim_data => FALSE x_relay_url => http://XXXXXX.com/cgi-bin/transact_reflect x_invoice_num => 1234 x_email => julian at jlbprof dot com x_zip => 46225 x_city => Houston x_company => Julian Brown x_version => 3.1 x_address => 123 Fake St. x_card_num => 4111111111111111 x_exp_date => 10/2015 x_last_name => Brown x_first_name => Julian x_type => AUTH_CAPTURE x_state => TX x_cust_id => 3219 x_method => CC x_country => US x_phone => 713 555 1212 x_email_merchant => TRUE x_login => XXXXXX x_split_tender_id => 109312 x_amount => 119.77 x_fp_sequence => 45563269 x_fp_timestamp => 1357845367 x_fp_hash => fde9d4ddd1d2471fa5c3701a84c8b4ff
Here I added the split tender id from my previous transaction and set the amount to the difference from the previous transaction and the originally requested amount.
I update the fingerprint by normal rules and here is the failed response:
x_response_code :3|4: x_response_reason_code :99|295: x_response_reason_text :This transaction cannot be accepted.|The amount of this request was only partially approved on the given prepaid card. An additional payment is required to fulfill the balance of this transaction.: x_avs_code :P|Y: x_auth_code :|ALTRPC: x_trans_id :0|2182619104: x_method :CC|CC: x_card_type :|Visa: x_prepaid_balance_on_card :|: x_prepaid_requested_amount :|121.00: x_account_number :|XXXX1111: x_first_name :: x_last_name :: x_company :: x_address :: x_city :: x_state :: x_zip :: x_country :: x_phone :: x_fax :: x_email :: x_invoice_num :: x_description :: x_type :auth_capture: x_cust_id :: x_ship_to_first_name :: x_ship_to_last_name :: x_ship_to_company :: x_ship_to_address :: x_ship_to_city :: x_ship_to_state :: x_ship_to_zip :: x_ship_to_country :: x_amount :119.77|1.23: x_tax :0.00: x_duty :0.00: x_freight :0.00: x_tax_exempt :FALSE: x_po_num :: x_MD5_Hash :5073253C8BE7569B7EA186FA2DCC9079: x_cvv2_resp_code :| : x_cavv_response :|: x_split_tender_id :109312: x_split_tender_status :Held: x_test_request :false:
99 is the rejection code that you get if your fingerprint is incorrect. I looked at this nine ways to Sunday and cannot figure this out. One thing I do know is if I remove the x_split_tender_id field the transaction succeeds which should indicate that the fingerprint is correct:
x_description => Mine x_relay_response => TRUE x_delim_data => FALSE x_relay_url => http://XXXXXX.com/cgi-bin/transact_reflect x_invoice_num => 1234 x_email => julian at jlbprof dot com x_zip => 46225 x_city => Houston x_company => Julian Brown x_version => 3.1 x_address => 123 Fake St. x_card_num => 4111111111111111 x_exp_date => 10/2015 x_last_name => Brown x_first_name => Julian x_type => AUTH_CAPTURE x_state => TX x_cust_id => 3219 x_method => CC x_country => US x_phone => 713 555 1212 x_email_merchant => TRUE x_login => XXXXX x_amount => 119.77 x_fp_sequence => 45563269 x_fp_timestamp => 1357845367 x_fp_hash => fde9d4ddd1d2471fa5c3701a84c8b4ff
And the response when I remove the split tender id.
x_response_code :1: x_response_reason_code :1: x_response_reason_text :This transaction has been approved.: x_avs_code :Y: x_auth_code :GVAVPN: x_trans_id :2182619163: x_method :CC: x_card_type :Visa: x_account_number :XXXX1111: x_first_name :Julian: x_last_name :Brown: x_company :Julian Brown: x_address :123 Fake St.: x_city :Houston: x_state :TX: x_zip :46225: x_country :US: x_phone :713 555 1212: x_fax :: x_email :julian at jlbprof dot com: x_invoice_num :1234: x_description :Mine: x_type :auth_capture: x_cust_id :3219: x_ship_to_first_name :: x_ship_to_last_name :: x_ship_to_company :: x_ship_to_address :: x_ship_to_city :: x_ship_to_state :: x_ship_to_zip :: x_ship_to_country :: x_amount :119.77: x_tax :0.00: x_duty :0.00: x_freight :0.00: x_tax_exempt :FALSE: x_po_num :: x_MD5_Hash :17F7B2BB753545EA84DCDD6F634F228D: x_cvv2_resp_code :: x_cavv_response :2: x_test_request :false:
The second transaction should clearly indicate that the fingerprint is correct yet it fails because of fingerprint. Does the presence of a split tender id change the rules for calculating the fingerprint?
Thanx
Julian
Solved! Go to Solution.
01-10-2013 12:03 PM
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok. Here is the C# that works
HMAC_MD5(transactionKey, loginID + "^" + sequence + "^" + timeStamp + "^" + amount + "^" + "^" + splitID);
so is the x_login^x_fp_sequence^x_fp_timestamp^x_amount^^x_split_tender_id
two ^^ between x_amount and x_split_render_id, the reason I think is that authorize.net is going to support x_currency_code some time in the future
x_login^x_fp_sequence^x_fp_timestamp^x_amount^x_currency_code^x_split_tender_id
P.S. I only tested on the test server.
01-10-2013 05:52 PM - edited 01-10-2013 05:53 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok. Here is the C# that works
HMAC_MD5(transactionKey, loginID + "^" + sequence + "^" + timeStamp + "^" + amount + "^" + "^" + splitID);
so is the x_login^x_fp_sequence^x_fp_timestamp^x_amount^^x_split_tender_id
two ^^ between x_amount and x_split_render_id, the reason I think is that authorize.net is going to support x_currency_code some time in the future
x_login^x_fp_sequence^x_fp_timestamp^x_amount^x_currency_code^x_split_tender_id
P.S. I only tested on the test server.
01-10-2013 05:52 PM - edited 01-10-2013 05:53 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That works, but does not seem to be documented. Did you just guess at that? Or is it documented somewhere where almighty Google failed me?
Thanx
Julian
01-11-2013 07:46 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No it wasn't documentated, and I was try multiple way until this works.
01-11-2013 07:49 AM