当前位置: 首页 > 知识库问答 >
问题:

CyberSource简单订单API捕获PayPal事务

束志业
2023-03-14

我试图捕获一个贝宝交易,已经授权使用贝宝按钮。我正在尝试使用CyberSource Simple Order API来做这件事。我只有3条信息似乎是从PayPal按钮返回的:PayerIDPaymentidPaymentToken。我尝试了几种方法来将其传递给简单的Order API,但总是得到一个102代码,在响应中包含deleve消息。CyberSource的日志系统指出这是因为以下请求字段无效或丢失:request_token

我是否需要通过CyberSource进行整个交易-授权和捕获?或者是什么方式我可以采取贝宝生成的按钮和授权交易,然后通过CyberSource捕获它?

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);
}

共有1个答案

公良鸿光
2023-03-14

你试过这样设置你的请求吗?不要注意我使用的值,但我正在查看文档中的示例(示例21对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" 
      }
}
 类似资料:
  • 我遵循以下示例(https://developer.PayPal.com/docs/checkout/reference/server-integration/set-up-transaction/#on-the-server),以使PayPal在服务器上工作。 我的问题是,有可能同时创建秩序、授权和捕获吗? 谢谢

  • 是否有可能自动捕获一个订单,而不需要任何额外的捕获请求?因为当我使用贝宝按钮,它自动工作,我想有相同的结果使用REST API。

  • 我试图从过去的贝宝交易中检索捕获请求令牌,因为我需要退款客户。我们的系统上已经没有这些信息了,因为,甚至不问。它看起来像这样: 有可能得到那个吗? 我在这里查看了PayPal的事务搜索API,响应中没有任何内容表明该字段存在:https://developer.paypal.com/docs/API/transaction-search/v1/ 我也检查了贝宝的内置报告,但他们也没有给我们。 此外

  • 当使用NodeJS SDK与PayPal的V2订单API集成时,什么时候是完成订单的正确时间(例如,向客户运送产品)。

  • 我有一个Magento2商店,带有默认的结帐模块,使用nvp api下单。我需要稍后从paypal获取订单,并根据其状态执行一些操作,但是从rest api(/v2/checkout/orders/{id})我只获取使用相同rest api创建的订单的结果,而不是在签出期间放置的订单(使用nvp api)。 我已经在paypal上配置了一个沙箱帐户,用于nvp api调用的业务帐户可以访问payp

  • Im试图用支付属性payment._id保存订单,但无法在创建路由中获取捕获id。是否有一种方法通过贝宝传递一些id然后在捕获中获取该id?并且这是一个好主意,以节省订单和支付在捕获路线? 支付模型存储paypal捕获