PayPal快速结账(经典 API)欺诈信息未返回

本文关键字:欺诈 信息 返回 API 经典 PayPal | 更新日期: 2023-09-27 18:35:10

我使用经典API的PayPal快速结账在我的网站上付款。以下是 API 文档:

https://developer.paypal.com/docs/classic/api/merchant/DoExpressCheckoutPayment_API_Operation_SOAP/

为了使用该服务,我使用以下库:

https://www.nuget.org/packages/PayPalMerchantSDK/

我的任务是针对PayPal交易提供欺诈信息。我们要显示的信息是地址验证 (AVS) 和安全代码验证 (CSC)。

为了测试这一点,我尝试记录欺诈信息。这是我的代码,它创建快速结帐请求,然后得到响应:

var request = new DoExpressCheckoutPaymentReq() {
    DoExpressCheckoutPaymentRequest = new DoExpressCheckoutPaymentRequestType() {
        DoExpressCheckoutPaymentRequestDetails = new DoExpressCheckoutPaymentRequestDetailsType() {
            Token = details.Token,
            PaymentAction = PaymentActionCodeType.SALE,
            PayerID = details.PayerInfo.PayerID,
            PaymentDetails = details.PaymentDetails
        },
        ReturnFMFDetails = 1
    }
};
var response = DoExpressCheckoutPayment(request);

请注意,上面我添加了以下行:

ReturnFMFDetails = 1

根据文档,这应该返回适当的欺诈信息。最后,我在底部添加了以下代码来记录欺诈信息:

var sb = new StringBuilder();
try {
    var paymentInfo = response.DoExpressCheckoutPaymentResponseDetails.PaymentInfo;
    for (var i = 0; i < paymentInfo.Count; i++) {
        var fmfDetails = paymentInfo[i].FMFDetails;
        if (fmfDetails != null) {
            if (fmfDetails.AcceptFilters != null) {
                foreach (var filter in fmfDetails.AcceptFilters.Filters) {
                    sb.AppendLine("Accept Filter (" + i + "): " + filter.Id + " - " + filter.Name);
                }
            }
            if (fmfDetails.DenyFilters != null) {
                foreach (var filter in fmfDetails.DenyFilters.Filters) {
                    sb.AppendLine("Deny Filter (" + i + "): " + filter.Id + " - " + filter.Name);
                }
            }
            if (fmfDetails.PendingFilters != null) {
                foreach (var filter in fmfDetails.PendingFilters.Filters) {
                    sb.AppendLine("Pending Filter (" + i + "): " + filter.Id + " - " + filter.Name);
                }
            }
            if (fmfDetails.ReportFilters != null) {
                foreach (var filter in fmfDetails.ReportFilters.Filters) {
                    sb.AppendLine("Report Filter (" + i + "): " + filter.Id + " - " + filter.Name);
                }
            }
        }
    }
} catch (Exception ex) {
    sb.AppendLine(ex.Message);
}
Logger.Log(sb.ToString());

但是,记录的信息始终为空。如果有人能告诉我我做错了什么,我将不胜感激。谢谢

PayPal快速结账(经典 API)欺诈信息未返回

在使用PayPal欺诈管理过滤器 (FMF) 之前,您必须在帐户的过滤器设置中设置和配置过滤器。 默认情况下,筛选器未设置,不会返回任何信息。

设置并配置后,您应该开始接收适当的 FMF 信息。