You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XML获取Authorize.Net表单令牌以实现跳转至其托管支付页?

Authorize.Net 托管支付表单令牌生成与跳转示例

你需要对接的是Authorize.Net的**托管支付表单(Hosted Payment Form)**功能,以下是完全匹配你需求的流程示例:

一、生成托管表单令牌(XML请求)

使用你提供的测试地址 https://apitest.authorize.net/xml/v1/request.api,发送POST请求,请求体为XML格式,用于获取跳转所需的令牌:

<?xml version="1.0" encoding="utf-8"?>
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name>你的API登录ID</name>
    <transactionKey>你的交易密钥</transactionKey>
  </merchantAuthentication>
  <transactionRequest>
    <transactionType>authCaptureTransaction</transactionType>
    <amount>10.00</amount> <!-- 替换为实际交易金额 -->
    <hostedPaymentSettings>
      <setting>
        <settingName>hostedPaymentReturnUrl</settingName>
        <settingValue>https://你的域名/支付成功回调页</settingValue>
      </setting>
      <setting>
        <settingName>hostedPaymentCancelUrl</settingName>
        <settingValue>https://你的域名/支付取消回调页</settingValue>
      </setting>
      <setting>
        <settingName>hostedPaymentButtonText</settingName>
        <settingValue>完成支付</settingValue>
      </setting>
      <!-- 可添加更多自定义设置,比如是否显示账单地址等 -->
    </hostedPaymentSettings>
  </transactionRequest>
</createTransactionRequest>

请求成功后,你会收到包含hostedPaymentReturnToken的响应,这个令牌就是跳转托管页的核心参数:

<?xml version="1.0" encoding="utf-8"?>
<createTransactionResponse xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <transactionResponse>
    <responseCode>1</responseCode>
    <authCode>XXXXXX</authCode>
    <!-- 其他响应字段 -->
  </transactionResponse>
  <hostedPayment>
    <hostedPaymentReturnToken>生成的令牌值</hostedPaymentReturnToken>
    <hostedPaymentUrl>https://accept.authorize.net/payment/payment?token=生成的令牌值</hostedPaymentUrl>
  </hostedPayment>
</createTransactionResponse>

二、跳转至Authorize.Net托管支付页

拿到hostedPaymentReturnToken后,你可以通过两种方式引导用户进入托管支付页面:

方式1:自动提交表单

<form id="paymentForm" method="post" action="https://accept.authorize.net/payment/payment">
  <input type="hidden" name="token" value="拿到的hostedPaymentReturnToken">
</form>
<script>
  document.getElementById('paymentForm').submit();
</script>

方式2:直接跳转URL

引导用户点击链接或自动跳转:

<a href="https://accept.authorize.net/payment/payment?token=拿到的hostedPaymentReturnToken">前往Authorize.Net完成支付</a>

关键说明

  • 测试环境使用apitest.authorize.net相关地址,生产环境替换为api.authorize.net(支付地址accept.authorize.net保持不变)
  • 可通过hostedPaymentSettings自定义托管表单的显示内容、回调规则,比如设置是否收集账单地址、自定义表单标题等
  • 支付完成/取消后,Authorize.Net会跳转你设置的回调地址,并携带交易结果参数,可在回调页验证交易状态

内容的提问来源于stack exchange,提问作者Mountain Development

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:12:50