我为PayPal创建了一个类,它非常适合添加单个项目,但我现在正试图将其作为购物车使用,这样我就可以添加多个产品并使用我的徽标自定义页面。
任何人都可以提供我如何做这个的例子吗?我浏览过很多网站,但似乎没有一个网站能够很好地解释。根据我的理解,我正在使用PayPal标准。
public static class PayPal
{
public static string _URLRedirect;
public static void ProcessPayment(int Amount, string ItemName)
{
const string Server_URL = "https://www.sandbox.paypal.com/cgi-bin/webscr?";
const string return_URL = "https://www.paypal.com/xclick/Sample@gmail.com";
const string cancelreturn_URL = "http://www.PageWhenCancel.com/cc.fail.aspx";
//Assigning Cmd Path as Statically to Parameter
string cmd = "_xclick";
//Assigning business Id as Statically to Parameter
string business = "payments@xxx.xx.xx";// Enter your business account here
//Assigning item name as Statically to Parameter
string item_name = ItemName.ToString();
//Passing Amount as Statically to parameter
int amount = Amount;
//Passing Currency as Statically to parameter
string currency_code = "GBP";
string redirect = "";
//Pass your Server_Url,cmd,business,item_name,amount,currency_code variable.
redirect += Server_URL;
redirect += "cmd=" + cmd;
redirect += "&business=" + business;
redirect += "&item_name=" + item_name;
redirect += "&amount=" + amount;
redirect += "¤cy_code=" + currency_code;
redirect += "&return=" + return_URL;
redirect += "&cancel_return" + cancelreturn_URL;
//Redirect to the payment page
_URLRedirect = redirect.ToString();
}
}
答案 0 :(得分:1)
您好我正面临类似的问题,直到我意识到asp.net转发器可以帮我解决这个问题。
例如,在您的应用程序界面上,它必须包含此ff。默认情况下的代码行(以防您希望项目列表是动态的):
<form id="Paypal" name="Paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
method="post">
<input type="hidden" name="cmd" value="_cart" />
<input type="hidden" name="upload" value="1" />
<input type="hidden" name="business" value="<%=System.Web.Configuration.WebConfigurationManager.AppSettings[" paypalemail="] %>" />
<asp:repeater id="rptItems" runat="server" xmlns:asp="#unknown">
<itemtemplate>
<input type="hidden" name="item_name_<%# Eval("itemCount") %>" value="<%# Eval("itemValue") %>" />
<input type="hidden" name="quantity_<%# Eval("itemCount") %>" value="<%# Eval("quantityValue") %>" />
<input type="hidden" name="amount_<%# Eval("itemCount") %>" value="<%# Eval("amountValue") %>" />
</itemtemplate>
</asp:repeater>
<input type="hidden" name="shipping_1" value="5" />
<input type="hidden" name="handling_1" value="5" />
<input type="hidden" name="tax_1" value="5" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="return" value="<%=System.Web.Configuration.WebConfigurationManager.AppSettings[" successurl="] %>" />
<input type="hidden" name="cancel_return" value="<%=System.Web.Configuration.WebConfigurationManager.AppSettings[" failedurl="] %>" />
<input type="hidden" name="lc" value="test lc country" />
<input type="submit" value="Submit" />
</form>
,而:
必需的第三方购物车变量 您的HTML代码至少需要以下隐藏的HTML变量。有关变量的完整列表,请参阅附录A“网站付款标准的HTML变量”。 表4.1
必需的第三方购物车变量 名称
描述 item_name1 - 单个项目的名称
amount_1 - 单个商品的价格或购物车中所有商品的总价
quantity_1 - 单个项目的数量
业务 -
您的PayPal帐户的电子邮件地址
item_name_1 - 项目名称或整个购物车的名称
上传 - 表示使用第三方购物车 有两种方法可以将您的第三方购物车与PayPal和网站付款标准集成:
传递单个项目的详细信息。
传递购物车总付款的总金额,而不是单个商品详情。
在您的代码背后,您可以执行以下操作:
if (!Page.IsPostBack)
{
DataTable dtItems = new DataTable();
dtItems.Columns.Add("itemCount");
dtItems.Columns.Add("itemValue");
dtItems.Columns.Add("quantityValue");
dtItems.Columns.Add("amountValue");
dtItems.Rows.Add("1","Cellphone", "10", "200.00");
dtItems.Rows.Add("2", "Bag", "2", "250.00");
dtItems.Rows.Add("3", "Mouse", "10", "3500.00");
dtItems.Rows.Add("4", "Keyboard", "5", "200.00");
rptItems.DataSource = dtItems;
rptItems.DataBind();
}
和霍拉!当您重定向到沙箱时,您将获得此结果:
希望这篇文章能回答你的疑虑。 :):)
答案 1 :(得分:0)
我过去也遇到过同样的问题。我必须做的是独立于Paypal创建我自己的购物车。然后,当客户准备结账时,我将它们转发给Paypal。而不是发送多个项目和价格,我将所有内容组合在一起用于Paypal。
例如,如果客户订购3件不同的商品,每件5美元,我的网站将显示3件商品和3件价格。但是,如果转移到Paypal,客户会看到一个项目(即“我的公司订单”)和一个价格(即15美元)。但是当返回我的网站时,客户会再次看到订购了3件商品。
如果您正在寻找一个好的购物车系统,那么有数百种可用的支持Paypal和这种方法。