我已经添加了在Paypal开发者网站上建议的代码。
<form id="myPaymentContainer" method="post"></form>
<script type="text/javascript">
window.paypalCheckoutReady = function () {
paypal.checkout.setup('XUM4RANUNKG4U',
{
environment: 'sandbox',
container: 'myPaymentContainer'
});
};
</script>
<script type="text/javascript" src="//www.paypalobjects.com/api/checkout.js" async></script>上下文中的签出概述描述了以下步骤:
要使用PayPal签出,买方单击PayPal签出按钮。 作为对按钮单击的响应,这些操作将发生: 在上下文JavaScript打开一个弹出窗口,并等待您的表单提交,以创建一个快速结帐付款。成功的create返回您在后续步骤中使用的HATEOAS链接。使用来自响应的重定向URL将买方重定向到PayPal URL。如果您正确地集成了上下文中的JavaScript,弹出窗口将管理重定向.。
对于我的OnLoad事件,我将使用以下方法进行测试:
var config = ConfigManager.Instance.GetProperties();
if (Page.IsPostBack)
{
var accessToken = new OAuthTokenCredential(config).GetAccessToken();
var apiContext = new APIContext(accessToken);
var transaction = new Transaction()
{
amount = new Amount()
{
currency = "USD",
total = "20"
},
description = "My product description",
item_list = new ItemList()
{
items = new List<Item>()
{
new Item()
{
name="The Product",
currency="USD",
price="20",
quantity = "1"
}
}
},
invoice_number = "123"
};
var payer = new Payer()
{
payment_method = "paypal"
};
var payment = new Payment()
{
intent = "sale",
transactions = new List<Transaction>() { transaction },
payer = payer,
redirect_urls = new RedirectUrls
{
cancel_url = "/Home.aspx",
return_url = "/Checkout.aspx",
}
};
var createdPayment = payment.Create(apiContext);
var paypalLinks = createdPayment.links;
if (paypalLinks != null)
{
var redirectLink = paypalLinks.FirstOrDefault(lnk => lnk.method == "REDIRECT");
if (redirectLink != null)
{
Response.Redirect(redirectLink.href);
}
}
}如果我将action属性添加到我的<form>中,弹出窗口将填充该操作。我以为弹出窗口会填充Paypal HTML,这样用户就可以登录了。如果删除窗体上的操作,则在弹出窗口中呈现承载按钮的同一页。
更新
我确实做得很好。我没有使用表单标记,而是使用了div:
<div id="myPaymentContainer" />
<script type="text/javascript">
window.paypalCheckoutReady = function () {
paypal.checkout.setup('XUM4RANUNKG4U',
{
environment: 'sandbox',
container: 'myPaymentContainer'
});
};
</script>
<script type="text/javascript" src="//www.paypalobjects.com/api/checkout.js" async></script>我对逻辑进行了一些重构,但它对Response.Redirect(链接)的调用基本相同。希望这能有所帮助。
发布于 2016-09-13 21:07:32
我张贴这个,并设置为我的答案,以防人们看到一个问题有一个实际的答案。
我的问题被修正了。
https://stackoverflow.com/questions/39419850
复制相似问题