c# - Cyber​​Source 简单订单 API 捕获 PayPal 交易

标签 c# asp.net paypal

我正在 try catch 已使用 PayPal 按钮授权的 PayPal 交易。我正在尝试使用 Cyber​​Source Simple Order API 来执行此操作。我只有 3 条似乎从 PayPal 按钮返回的信息是:payerIDpaymentIDpaymentToken。我已经尝试了几种将其传递给 Simple Order API 的方法,但总是在响应中得到一个带有 DECLINE 消息的 102 代码。 Cyber​​source 的日志系统表明这是因为 以下请求字段无效或缺失:request_token

我是否需要通过网络资源进行整个交易(授权和获取)?或者我可以通过什么方式获取 paypal 生成的按钮并授权交易,然后通过 Cyber​​Source 捕获它?

这是我的 Cyber​​Source SOAPI 请求的代码片段:

RequestMessage request = new RequestMessage
{
    merchantID = WebConfigurationManager.AppSettings["cybs.merchantID"]
    , payPalDoCaptureService = new PayPalDoCaptureService {
            run = "true"
            , invoiceNumber = orders
            , paypalAuthorizationId = authId
            , paypalAuthorizationRequestToken = requestToken
            , completeType = "Complete" }
    , clientApplication = "MyClient Application"
    , clientApplicationVersion = "2.0"
    , clientApplicationUser = userName
    , clientEnvironment = WebConfigurationManager.AppSettings["Tier"]
    , merchantReferenceCode = orders
    , customerID = OrderConstants.CustomerNumber
    , merchantDefinedData = new MerchantDefinedData { field1 = "Customer #: " + OrderConstants.CustomerNumber, field2 = orders }
    , purchaseTotals = new PurchaseTotals { currency = "usd", grandTotalAmount = total, taxAmount = taxtotal }
    , item = items.ToArray()
};

ReplyMessage reply = new ReplyMessage();
try
{
    reply = SoapClient.RunTransaction(request);
}
catch (Exception ex)
{
    reply.decision = "SYSTEM ERROR";
    reply.additionalData = string.Format("Error processing request. Exception message: {0}", ex.Message);
}

最佳答案

您是否尝试过这样设置您的请求?不要注意我使用的值,但我正在查看文档中的示例 (Example 21 Request for payPalDoCaptureService).您需要按 ctrl+f 才能找到它。

RequestMessage request = new RequestMessage
{
    payPalDoCaptureService_run=true
    , merchantID = WebConfigurationManager.AppSettings["cybs.merchantID"]
    , merchantReferenceCode = HTNsubscription9647
    , purchaseTotals = new PurchaseTotals { currency = "usd", grandTotalAmount = total, taxAmount = taxtotal }
    , payPalDoCaptureService = new PayPalDoCaptureService 
      {
         run = "true"
        , invoiceNumber = orders
        , paypalAuthorizationId = authId
        , paypalAuthorizationRequestID = authReqId
        , paypalAuthorizationRequestToken = requestToken
        , completeType = "Complete" 
      }
}

关于c# - Cyber​​Source 简单订单 API 捕获 PayPal 交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45740394/

相关文章:

paypal - Drupal 7/PayPal 快速结账 : How to set delivery options based on address

c# - 如何设置构造函数以反序列化仅获取属性而不必在 c# 中复制代码?

c# - 如何为 IdentityServer4 Entity Framework 核心迁移指定架构?

c# - 在 C# 中从数据库保存/读取 csv 文件

c# - 根据 Icollection 中的值对 Ienumerable 进行排序的正确 LINQ 语法

asp.net - 遍历 GridView 中的所有行

更改使用站点 SSL 证书后 ASP.NET Web 服务调用失败

c# - U3D-如何在 Mac 上以单声道启用 System.Data?

php - PayumBundle 在后台捕获付款并不容易

javascript - PayPal集成中出现“未处理的API错误”