我正在使用Authorize.net支付网关并通过直接发布方式进行交易,我在服务器上没有获得信用卡详细信息。无论如何,我只能验证信用卡/借记卡详细信息,我我不想向客户收费,或者即使我收取最低费用1美元,也应该在验证后自动退款。
以下是我的代码:
<form id='secure_redirect_form_id' action='https://test.authorize.net/gateway/transact.dll' method='POST'>
<br />
<input type='hidden' name='x_invoice_num' value='<%=System.currentTimeMillis()%>' />
<input type='hidden' name='x_relay_url' value="${relayResponeURL}" />
<input type='hidden' name='x_login' value="${paymentModel.paymentLoginId}" />
<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_version' value='3.1' />
<input type='hidden' name='x_method' value='CC' />
<input type='hidden' name='x_type' value='AUTH_CAPTURE' />
<input type='hidden' name='x_amount' value="${paymentModel.amount}"/>
<input type='hidden' name='x_show_form' value='PAYMENT_FORM' />
<input type='hidden' name='x_test_request' value='FALSE' />
<input type='hidden' name='notes' value="${paymentModel.description}" />
<input type="hidden" name="x_address" value="${location.address1} ${location.address2}" >
<input type="hidden" name="x_city" value="${location.city}" >
<input type="hidden" name="x_state" value="${location.state}" >
<input type="hidden" name="x_email" value="${user.email}" >
<input type="hidden" name="x_email_customer" value="true" >
<input type="hidden" name="x_first_name" value="${user.firstName}" >
<input type="hidden" name="x_last_name" value="${user.lastName}" >
<input type="hidden" name="x_phone" value="${merchant.phoneNumber}" >
<input type="hidden" name="x_zip" value="${location.zipcode}" >
<input type="hidden" name="x_company" value="${merchant.companyName}" >
<input type='submit' name='buy_button' value='BUY' />
</form>
答案 0 :(得分:4)
您可以执行AUTH_ONLY,它将获得收费授权但从未实际收费,除非您再运行CAPTURE交易。
<input type='hidden' name='x_type' value='AUTH_CAPTURE' />
请注意,有效地冻结用户卡上的这些资金,因此您需要少量支付(如果您的处理器支持,则为0.00美元,或0.01美元),或在运行后立即取消交易。