【发布时间】:2015-11-18 04:37:28
【问题描述】:
简单的问题。我该怎么做。
我已成功连接到 Paypal 网络服务并使用沙盒,但我什至无法开始。
在您必须遵循的步骤中,文档很容易理解,但我就是无法编译任何代码,更不用说运行了。这是我所得到的。见下文,PayPalTest 是我的服务参考的名称
我已经标记了它开始出错的地方我无法正确获取参数,无论我尝试声明或实例化什么并得到一个无效的类型错误(厄运的红色波浪线)。
我该怎么办。有没有人可以分享一个工作样本。是的,我可以看到很多使用 Ajax、jQuery 之类的示例。但是我找不到任何东西可以按照我想要的方式做。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace GenericWebApplication.ApplicationClasses
{
class PayPalIntegration
{
public void PayForGoods()
{
PayPalTest.CustomSecurityHeaderType c = new PayPalTest.CustomSecurityHeaderType();
c.Credentials.Username = "xxxxx.xxxxx.xxxxx.xxxxx";
c.Credentials.Password = "XXXXXXXXXXXX";
c.Credentials.Signature = "XXxxX-XXXxxXXxX.XXXXXXXxxXXxXX-XXXXxxxXXXXxxXXXXxxXXX";
PayPalTest.PayPalAPIAAInterfaceClient cl = new PayPalTest.PayPalAPIAAInterfaceClient();
//I get stuck here
PayPalTest.SetExpressCheckoutReq r = new PayPalTest.SetExpressCheckoutReq();
PayPalTest.SetExpressCheckoutRequestDetailsType d = new SetExpressCheckoutRequestDetailsType();
d.ReturnURL = "";
d.CancelURL = "";
PayPalTest.SetExpressCheckoutResponse re = cl.SetExpressCheckout(d, d);
}
}
}
[更新]
encoder["METHOD"] = "SetExpressCheckout";
encoder["USER"] = APIUsername;
encoder["PWD"] = APIPassword;
encoder["SIGNATURE"] = APISignature;
encoder["RETURNURL"] = returnURL;
encoder["CANCELURL"] = cancelURL;
encoder["VERSION"] = SystemFunctions.Settings("PayPalVersion", "")[0].Value;
encoder["NOSHIPPING"] = "2";
encoder["PAYMENTREQUEST_0_AMT"] = amt;
encoder["MAXAMT"] = amt;
encoder["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale";
encoder["PAYMENTREQUEST_0_CURRENCYCODE"] = "GBP";
encoder["PAYMENTREQUEST_0_DESC"] = "test EC payment";
encoder["PAYMENTREQUEST_0_SHIPPINGAMT"] = SystemFunctions.Shipping;
//Optional Shipping Address entered on the merchant site
encoder["PAYMENTREQUEST_0_SHIPTONAME"] = shipToName;
encoder["PAYMENTREQUEST_0_SHIPTOSTREET"] = shipToStreet;
encoder["PAYMENTREQUEST_0_SHIPTOSTREET2"] = shipToStreet2;
encoder["PAYMENTREQUEST_0_SHIPTOCITY"] = shipToCity;
encoder["PAYMENTREQUEST_0_SHIPTOSTATE"] = shipToState;
encoder["PAYMENTREQUEST_0_SHIPTOZIP"] = shipToZip;
encoder["PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE"]= shipToCountryCode;
encoder["EMAIL"] = SystemFunctions.UserAddress.Email;
encoder["SOLUTIONTYPE"] = "Sole";
encoder["LANDINGPAGE"] = "Billing";
encoder["CHANNELTYPE"] = "Merchant";
encoder["PAYMENTREQUEST_0_ITEMAMT"] = SystemFunctions.TrolleyTotal.ToString("0.00");
encoder["L_PAYMENTREQUEST_0_NAME0"] = "Goods";
encoder["L_PAYMENTREQUEST_0_AMT0"] = SystemFunctions.TrolleyTotal.ToString("0.00");
encoder["L_PAYMENTREQUEST_0_NUMBER0"]="ABC123";
encoder["L_PAYMENTREQUEST_0_QTY0"] = "1";
【问题讨论】:
-
我查看了网络上的大量文章,但没有一篇能做我想做的事。事实上,他们几乎都没有我已经开始工作的支付标准,问题是在这种情况下我是否需要打扰快速结帐?
-
在我看来您没有遵循 API 要求。这里有一个关于如何使用 Express Checkout 的部分:codeproject.com/Articles/42894/… 上面代码中的“缺失部分”似乎与您的工作流程有关,而不一定与您的代码有关。在上面的链接中查看事物的顺序,您应该正在路上。祝你好运
-
你没有抓住重点。我的代码无法编译,更不用说担心工作流程了。我已经逐字阅读了那篇文章,但没有帮助。从那篇文章到“PayPal API”,我工作正常,只是找不到正确的代码来编译以使用 Express Checkout Api
标签: c# asp.net web-services paypal