Mat*_*att 10 c# asp.net paypal
我正在尝试捕获已使用PayPal按钮授权的PayPal交易.我正在尝试使用CyberSource Simple Order API来执行此操作.我唯一的3条信息,似乎来自PayPal按钮后面有: payerID,paymentID和paymentToken.我尝试了几种方法将其交给Simple Order API,但总是DECLINE在响应中获得带有消息的102代码.Cybersource的日志系统表明这是因为The following request field(s) is either invalid or missing: request_token.
我是否需要通过网络资源进行整个交易 - 授权和捕获?或者我可以采用paypal生成的按钮并授权交易,然后通过CyberSource捕获它的方式是什么?
这是我的CyberSource 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);
}
Run Code Online (Sandbox Code Playgroud)
我最终确实解决了这个问题。我的问题涉及我是否需要从端到端使用 CyberSource 是正确的路径。最终,在与 CyberSource 支持人员交谈了几天后,我发现我需要在 WebApi 方法中使用他们的“设置服务”来生成 PayPal“令牌”,并通过生成按钮的 javascript 中的 ajax 将其提供给 PayPal 按钮。我还必须深入研究他们和 PayPal 的文档,并找出如何实现这一点,因为最初并不是很清楚。无论如何,一旦我完成了设置服务,我就收集了来自 CyberSource 的响应中的信息以及 PayPal 令牌,并将其发送到“获取详细信息”服务调用(也是 CyberSource)。最后,该信息被提供给组合的 Do Sale 和 Do Capture 服务呼叫,并捕获资金。该按钮仅允许用户登录其 PayPal 帐户并验证他们是否想要继续交易。
CyberSource 的文档在这方面有点不够清晰,并且它们链接到一组已弃用的 PayPal 文档,这并没有让任何事情变得更容易。
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |