当我通过REST API处理付款时(使用PayPal REST SDK for .NET),我首先创建付款
Payment payment = ...
Payment createdPayment = payment.Create(apiContext);
Run Code Online (Sandbox Code Playgroud)
我存储创建的付款的ID以供以后使用.然后我重定向到提供的付款页面.在PayPal用户批准付款后调用的页面中,我想获取有关付款的信息.
我打电话
Payment payment = Payment.Get(apiContext, paymentID);
Run Code Online (Sandbox Code Playgroud)
使用存储的付款ID.
我预计这里的付款状态"已经批准",但它仍然是"已创建".
可能有什么不对?何时或如何获得"批准"状态?
use*_*539 12
你需要
构建具有支付ID的支付对象,并使用从PayPal 返回的支付者ID ,并使用访问令牌进行API调用.
这是从重定向到paypal时提供的SuccesUrl返回的查询参数.例如
http://yourserver.com/payment/paypal/success.asp?payerid=EC-43242423&token=FS321-DFSD-3123DFS-3G243
然后
执行付款:
Payment payment = new Payment("");
PaymentExecution pymntExecution = new PaymentExecution();
pymntExecution.payer_id = ("");
Payment executedPayment = pymnt.Execute(apiContext,pymntExecution);
Run Code Online (Sandbox Code Playgroud)请参阅paypal教程中的步骤4/5:
https://devtools-paypal.com/guide/pay_paypal/dotnet?interactive=OFF&env=sandbox
由JürgenBayer编辑
我接受了这个答案,但我只是在PayPal支持的帮助下添加了一些我发现的东西:
created付款创建后的结果.在付款人授权付款之后仍然是州(这是我的推理错误:approved并不意味着"由付款人批准",而是"由PayPal批准".没有"授权"状态).pending,approved,failed,cancelled或expiredpending意味着PyPal必须执行一些安全检查或付款是银行转帐.在后者中,PayPal必须等到银行转帐完成.approved表示付款已由PayPal批准.这种状态可能会导致信用卡付款.failed:根据https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNandPDTVariables/#id091EB04C0HS,如果付款是无法完成的银行转帐,则会出现此状态,例如因为银行账户资金不足.cancelled:付款被取消了(问题是,由谁?)expired:付款授权已过期且无法捕获.| 归档时间: |
|
| 查看次数: |
5636 次 |
| 最近记录: |