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

如何通过PayPal C# API取消参考交易?

取消PayPal参考交易的正确API调用

首先明确:你混淆了参考交易(Reference Transactions)和定期付款/订阅配置文件的API使用场景:

  • ManageRecurringPaymentsProfileStatus仅适用于B-开头的定期付款配置文件,参考交易没有这类配置文件,所以传入B-开头ID必然报错“配置文件ID无效”。
  • DoVoid仅能撤销未结算的授权交易或已授权但未捕获的交易,如果你的参考交易是已完成的扣款,或者你要取消的是后续发起扣款的权限,这个API也不适用。

针对参考交易的取消需求,分两种场景处理:

场景1:撤销已发起的参考交易扣款

如果已经通过参考交易完成了一笔扣款,想要撤销该笔交易,直接使用DoVoid API,但需要传入该扣款交易的ID(而非原始参考ID或配置文件ID),同时确保交易处于可撤销状态(通常是交易完成后短时间内)。

C#代码示例:

var voidRequest = new VoidRequestType
{
    AuthorizationID = "你的扣款交易ID", // 注意是具体扣款的交易ID,不是参考ID
    Version = PayPalAPIInterfaceServiceService.API_VERSION
};

var service = new PayPalAPIInterfaceServiceService();
VoidResponseType response = service.DoVoid(voidRequest);

场景2:取消后续发起参考交易扣款的权限

如果要彻底取消商家通过该参考ID发起后续扣款的权限,需要调用DoReferenceTransaction API,并设置TransactionType为VoidReferenceTransaction,传入原始的参考交易ID(即最初授权/交易的ID)。

C#代码示例:

var referenceRequest = new DoReferenceTransactionRequestType
{
    Version = PayPalAPIInterfaceServiceService.API_VERSION,
    DoReferenceTransactionRequestDetails = new DoReferenceTransactionRequestDetailsType
    {
        ReferenceID = "你的原始参考交易ID", // 最初的授权/交易ID
        TransactionType = TransactionTypeCodeType.VoidReferenceTransaction,
        Amount = new BasicAmountType { Value = "0.00", CurrencyID = CurrencyCodeType.USD } // 金额填0即可
    }
};

var service = new PayPalAPIInterfaceServiceService();
DoReferenceTransactionResponseType response = service.DoReferenceTransaction(referenceRequest);

另外需要注意:

  • 确保你的PayPal账户已开通参考交易权限,否则相关API调用会失败。
  • 传入的交易ID/参考ID必须正确,避免混淆定期付款配置文件ID(B-开头)和交易ID(通常是P-或TXN-开头)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:30:59