关键词:
【中文标题】贝宝订单请求永远不会回来【英文标题】:PayPal Order Request never gets back 【发布时间】:2021-02-09 06:59:56 【问题描述】:亲爱的大家, 我从payPal开始, 我已经尝试实现 SDK 提供的标准示例(c#,FW 4.6.1)
在我的服务器端方法下面
public async static Task<PayPalHttp.HttpResponse> CreateOrder()
OrdersCreateRequest oRequest = new OrdersCreateRequest();
oRequest.Prefer("return=representation");
//System.Net.ServicePointManager.Expect100Continue = true;
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
oRequest.RequestBody(BuildRequestBodyWithMinimumFields());
//3. Call PayPal to set up a transaction
PayPalHttp.HttpClient oClient = PayPalClient.client();
oClient.SetConnectTimeout(new TimeSpan(0, 0, 0, 10, 0));
var oResponse = await oClient.Execute(oRequest);
var result = oResponse.Result<Order>();
return oResponse;
在这里 jquery 调用
paypal.Buttons(
style:
shape: 'rect',
color: 'blue',
layout: 'vertical',
label: 'pay',
,
createOrder: function ()
return fetch('/shop/paypal_test.aspx/CreateOrder',
method: 'post',
headers:
'content-type': 'application/json'
).then(function (res)
return res.json();
).then(function (data)
return data.orderID; // Use the same key name for order ID on the client and server
);
).render('#paypal-button-container');
问题是对 oClient.Execute 的响应永远不会返回。
PayPalClient 已完全按照 SDK 示例构建。
查看 PayPal API 调用日志,API 被正确调用,并标有绿旗。
你有什么想法吗?
提前谢谢你
【问题讨论】:
【参考方案1】:“永远不会回来”是什么意思?你说有一个“绿旗”,这是否意味着有一个 HTTP 2xx 成功响应?响应正文中是否有id
?
如果您将响应正文转发到前端,则前端不应该寻找 data.orderID
键,因为除非您提供它,否则不会有这样的键。这是用于前端的更好示例,其内容为 data.id
: https://developer.paypal.com/demo/checkout/#/pattern/server
请注意,该示例还包括 onApprove 函数中的提取。您需要实现这样的路由来捕获您的订单,否则将不会创建交易。
【讨论】:
【参考方案2】:亲爱的, 我终于找到了解决办法。
如前所述,API 调用后,在 developer.paypal 网站上,相关调用已被标记为绿色标志,表示调用已正确进行。
然后,我研究了服务器代码,以及如何管理任务。
异步调用嵌入在私有方法中,并由“等待”响应的同步方法调用。
这样一切正常
这里是允许例程工作而不被停止到“client.Execute(oRequest)”的sn-p代码。
[WebMethod(EnableSession = true)]
public static PayPalCheckoutSdk.Orders.Order SetupTransaction()
data.tessutigenovataddei.com.Order oOrder = null;
//save order in database.
oOrder = CreateOrderWithPaypal();
OrdersCreateRequest oRequest = new OrdersCreateRequest();
oRequest.Prefer("return=representation");
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
oRequest.RequestBody(BuildRequestBodyWithMinimumFields(oOrder));
PayPalHttp.HttpClient oClient = PayPalClient.client();
oClient.SetConnectTimeout(new TimeSpan(0, 0, 0, 10, 0));
var oResponseTask = SetupTransactionAsync(oClient, oRequest);
oResponseTask.Wait();
return oResponseTask.Result.Result<PayPalCheckoutSdk.Orders.Order>();
private async static Task<PayPalHttp.HttpResponse> SetupTransactionAsync(PayPalHttp.HttpClient client, OrdersCreateRequest request)
SynchronizationContext.SetSynchronizationContext(null);
PayPalHttp.HttpResponse oResponse = await client.Execute(request);
return oResponse;
感谢您的支持
【讨论】:
HttpClient GetStringAsync - 它永远不会回来
】HttpClientGetStringAsync-它永远不会回来【英文标题】:HttpClientGetStringAsync-Itnevercomesback【发布时间】:2012-03-2619:14:16【问题描述】:新的ASP.NETWebAPIHttpClient给了我一些奇怪的结果。这是我的代码:classProgramstaticasyncvoidMain(string[]args)v... 查看详情
贝宝直接付款
】贝宝直接付款【英文标题】:PayPalDirectPayments【发布时间】:2011-08-3120:26:44【问题描述】:我正在用ASP.Net4.0C#开发一个电子商务网站。我想使用PayPal接收付款,但通过信用卡/借记卡,这样客户就永远不会离开我的网站。请为此... 查看详情
为啥 HTTP 请求永远不会通过异步等待返回?
】为啥HTTP请求永远不会通过异步等待返回?【英文标题】:WhydoHTTPrequestsneverreturnwithasyncawait?为什么HTTP请求永远不会通过异步等待返回?【发布时间】:2019-01-1619:23:52【问题描述】:我正在尝试从在IIS8.5上运行的ASP.NET应用程序... 查看详情
客户关闭贝宝网站时不会触发 IPN
】客户关闭贝宝网站时不会触发IPN【英文标题】:IPNisnotfiredwhencustomerclosespaypalsite【发布时间】:2013-07-0720:48:38【问题描述】:我的网站可以选择让客户通过贝宝付款。完成订单后,客户将被重定向到贝宝网站。如果客户付款,I... 查看详情
猫鼬承诺永远不会到达 .then()
】猫鼬承诺永远不会到达.then()【英文标题】:Mongoosepromisenevergetsto.then()【发布时间】:2021-03-0415:36:23【问题描述】:我正在使用q并且我有多个mongoose.exec()承诺永远不会到达代码的.then()部分,所以永远不要让q解决。无法弄清楚... 查看详情
Facebook 请求永远不会被执行
】Facebook请求永远不会被执行【英文标题】:FacebookRequestNeverGetsExecuted【发布时间】:2013-08-1909:07:54【问题描述】:我正在尝试获取也使用相同应用的用户的Facebook好友。“是时候让其他使用此应用的朋友了”总是打印出来但是结... 查看详情
Phonegap iOS ajax 请求永远不会完成
】PhonegapiOSajax请求永远不会完成【英文标题】:PhonegapiOSajaxrequestnevercompletes【发布时间】:2015-02-0907:05:49【问题描述】:我有一个phonegap应用程序,它连接到Web服务并使用http基本身份验证进行身份验证。它是使用phonegap构建的,... 查看详情
当测试包含 HTTP 请求时,Quickspec 测试永远不会成功执行
】当测试包含HTTP请求时,Quickspec测试永远不会成功执行【英文标题】:QuickspectestnevergetsexecutedsuccessfullywhenthetestincludesanHTTPrequest【发布时间】:2018-09-1023:06:41【问题描述】:我目前正在为我正在开发的OSX框架的一小部分编写测试... 查看详情
RequestFactory 请求 (AutoBeanCodexImpl.doCoderFor) 永远不会完成并使用 100% cpu
】RequestFactory请求(AutoBeanCodexImpl.doCoderFor)永远不会完成并使用100%cpu【英文标题】:RequestFactoryrequest(AutoBeanCodexImpl.doCoderFor)neverfinishanduse100%cpu【发布时间】:2012-09-1309:52:38【问题描述】:我们在tomcat上部署了一个GWT应用程序,使用... 查看详情
Magento 在贝宝付款前下订单
】Magento在贝宝付款前下订单【英文标题】:Magentoplacingorderbeforepaypalpayment【发布时间】:2015-01-1920:53:54【问题描述】:我在magento中的paypal集成有问题。如果我选择贝宝标准付款并确认订单,我会正确重定向到贝宝网站进行付款... 查看详情
贝宝快递“订单汇总”页面
】贝宝快递“订单汇总”页面【英文标题】:Paypalexpress"ordersummary"page【发布时间】:2014-04-2020:00:44【问题描述】:我正在使用Express结帐集成替换免费和标准paypal按钮。我相信我已经完成了大部分工作,但我还有2个悬而... 查看详情
QNetworkAccessManager 线程永远不会完成
...2012-11-0620:43:06【问题描述】:我知道在4.8版中,每个http请求都有自己的线程来运行。我正在做一个链接检查器应用程序,它在一段时间循环中执行大量http请求,我在Windows任务管理器中注意到我的应用程序随着时间的推移使用了... 查看详情
可以永远不会调用 onLocationChanged 吗?
...取一个唤醒锁,然后启动定位服务,该服务从GPS和NETWORK请求位置更新。在第一个onLocationChanged上,我将位置发送给请求者,停 查看详情
Laravel - 将贝宝付款链接到订单 ID
】Laravel-将贝宝付款链接到订单ID【英文标题】:Laravel-linkpaypalpaymenttoorderid【发布时间】:2020-07-2015:41:55【问题描述】:我正在使用它来处理贝宝付款:https://artisansweb.net/paypal-payment-gateway-integration-in-laravel/我的页面有这个网址:... 查看详情
Game Center 排行榜得分请求的完成处理程序永远不会为没有得分的玩家调用
】GameCenter排行榜得分请求的完成处理程序永远不会为没有得分的玩家调用【英文标题】:GameCenterleaderboardscorerequest\'scompletionhandlerisnevercalledforplayersthathavenoscore【发布时间】:2014-04-1708:59:22【问题描述】:我的游戏实现了一个自... 查看详情
贝宝快递结账 |错误的订单 ID:“x”
】贝宝快递结账|错误的订单ID:“x”【英文标题】:PaypalExpresscheckout|WrongorderID:“x”【发布时间】:2018-08-1803:10:25【问题描述】:我正在经营一家magento商店,但遇到了PayPal的问题。正在付款,但未创建订单。我在日志中收到此... 查看详情
如何更改贝宝上的“感谢您的订单”消息?
】如何更改贝宝上的“感谢您的订单”消息?【英文标题】:HowdoIchangethe"Thanksforyourorder"messageonpaypal?【发布时间】:2013-07-0101:59:51【问题描述】:我们有一个基本上是销售数据的新应用。在我们在测试服务器上运行的订... 查看详情
如何批准创建订单响应中的贝宝批准链接?
】如何批准创建订单响应中的贝宝批准链接?【英文标题】:Howtoapprovethepaypalapprovallinkinthecreateorderresponse?【发布时间】:2020-06-2302:09:07【问题描述】:我在服务器端(nodejs)创建了paypal的OrderCreateRequest,并且我有批准链接“https... 查看详情