【发布时间】:2016-12-20 12:05:24
【问题描述】:
我正在使用 Paypal .NET SDK 尝试执行付款和退款。我的付款功能正常,但是我无法执行退款。我一直在翻阅 Paypal 的文档和代码示例,例如:
- http://paypal.github.io/PayPal-NET-SDK/Samples/SaleRefund.aspx.html
- https://developer.paypal.com/docs/api/payments/#sale_refund
我的退款流程基于 Paypal 的一个代码示例(上面的第一个链接),并在我自己的类库中稍作修改:
public class RefundTransaction
{
private readonly string _paypalUniqueTransactionId;
private readonly CurrencyEnum _currency;
private readonly decimal _orderTotal;
/// <summary>
/// Creates a refund with basic key fields.
/// </summary>
/// <param name="paypalUniqueTransactionId"></param>
/// <param name="currency"></param>
/// <param name="orderTotal"></param>
public RefundTransaction(string paypalUniqueTransactionId, CurrencyEnum currency, decimal orderTotal)
{
_paypalUniqueTransactionId = paypalUniqueTransactionId;
_currency = currency;
_orderTotal = orderTotal;
}
/// <summary>
/// Processes and completes a refund on a sale transaction.
/// </summary>
public void RefundWholeSale()
{
#region Set the refund details
Refund processRefund = new Refund
{
amount = new Amount()
{
currency = _currency.ToString(),
total = _orderTotal.ToString("N")
}
};
#endregion
#region Action the refund
Sale refundSale = new Sale()
{
id = _paypalUniqueTransactionId
};
Refund refundResponse = refundSale.Refund(Configuration.GetAPIContext(), processRefund);
#endregion
}
}
我得到的响应是 404 错误。据我了解,此 API 调用使用 /v1/payments/sale/{sale-id}/refund 端点。我使用的 Sale ID 值是用户付款后我存储的值:PAY-XXXXXXXXXXXXXXXXXXXXXXX。
我是否使用了正确的“销售 ID”? Paypal 帐户是否需要特殊权限才能通过 REST API 退款?
对此的任何帮助将不胜感激。
【问题讨论】:
标签: asp.net paypal paypal-rest-sdk