首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CyberSource简单订单API捕获PayPal事务

CyberSource简单订单API捕获PayPal事务
EN

Stack Overflow用户
提问于 2017-08-17 16:22:42
回答 3查看 939关注 0票数 10

我试图捕获一个使用PayPal按钮授权的PayPal事务。我正在尝试使用CyberSource简单的Order来完成这个任务。我只有3条似乎从PayPal按钮返回的信息:payerIDpaymentIDpaymentToken。我尝试过几种将其传递给简单Order的方法,但总是在响应中得到带有DECLINE消息的102个代码。赛博源的日志系统表明这是因为The following request field(s) is either invalid or missing: request_token

我是否需要进行整个交易-授权和捕获-通过网络源?或者,我如何使用paypal生成的按钮并授权一个事务,然后通过CyberSource捕获它?

下面是我的CyberSource SOAPI请求的代码片段:

代码语言:javascript
复制
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);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-29 20:31:09

我最终还是解决了这个问题。我关于是否需要从端到端使用CyberSource的问题是正确的.经过几天的CyberSource支持,我终于明白了,我需要在WebApi方法中使用他们的"Set服务“来生成PayPal”令牌“,并在生成按钮的javascript中通过ajax将其交给PayPal按钮。我还必须深入挖掘他们和PayPal的文档,并找出如何使其工作,因为它最初并不是非常清晰。无论如何,一旦我完成了Set服务,我就从CyberSource以及PayPal令牌收集响应中的信息,并将其发送到Get服务调用(也是CyberSource)。最后,将该信息提供给一个联合的Do Sale和Do Capture服务调用,并捕获资金。该按钮只允许用户登录他们的PayPal帐户并验证他们想要继续进行事务处理。

赛博源的文档在这方面有点不清晰,它们链接到一组不受欢迎的PayPal文档,这不会使任何事情变得更容易。

票数 1
EN

Stack Overflow用户

发布于 2017-08-29 16:40:32

你试过这样设置你的请求吗?不要注意我使用的值,但是我正在查看docs (示例21请求payPalDoCaptureService)。中的示例,您需要ctrl+f才能找到它。

代码语言:javascript
复制
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" 
      }
}
票数 1
EN

Stack Overflow用户

发布于 2017-08-29 15:53:46

由于错误显示git无效数据,请通过通过invalidField_N检查回复字段中的无效字段。

我希望这些请求授权服务样本能有所帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45740394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档