REST api (C# lib) 上的贝宝快速结帐

Posted

技术标签:

【中文标题】REST api (C# lib) 上的贝宝快速结帐【英文标题】:paypal express checkout on REST api (C# lib) 【发布时间】:2015-12-28 12:25:49 【问题描述】:

我不明白。如果 Classic api 有 DoExpressCheckout 方法......什么 Rest API 有它? 在那个图像上,我们有它应该如何以经典方式工作的方式

因此,对于我而言,Express Checkout 步骤是: 1) 客户将商品放入购物车并点击 PayPal 结帐按钮 我跑了

var payment = new PayPal.Api.Payment();
var createdPayment = payment.Create(apiContext);

所以付款并将客户重定向到贝宝网站

2) 客户完成 paypal 流程并返回我的网站。从他的支付宝交易中,我应该得到发货地址和他的电子邮件(不提交付款!)并根据他的发货地址计算运费

3) 客户选择发货方式后,我需要更新他的交易(添加运费),然后才提交。

所以这里的问题

1) 由于 PayPal.Api.Payment() 只有创建、执行和更新方法,如何根据 paymentId(如 PAY-21A17783AU475540MKYGAM5Q)使用 C# lib 获取付款(交易)信息?

2)如何更新当前交易(添加一些新的数据,如运费)然后提交?

附言。文档中乱七八糟,很多人不明白应该如何正确使用该 API。

杜克

【问题讨论】:

【参考方案1】:

根据您的帖子,您将创建一个Order - 强烈建议您在此链接中使用他们的库(它包含示例,应该让您快速上手,维护得很好,维护者很棒/响应迅速)

    Create it - 这将映射到经典 SetExpressCheckout

    Redirect to Paypal 获得用户批准。重定向 URL 是响应的一部分(不再只是一个令牌)

    如果用户“批准”,Paypal 会像在经典中一样重定向回来

    您将在else block 的示例中看到此处理 就像经典的PayerID 在查询字符串中一样

    Execute付款

    响应将包含您需要的数据,正如您将在执行语句下面的行中看到的那样,因此它映射到 GetExpressCheckoutDetails 您还将在注释行中看到有关下一步做什么(身份验证、捕获等)的选项。这些将映射到“最终确定”付款 您可以在获取详细信息后在上面“调整”运费/税金,并且与经典 IINM 的规则相同,至于您可以添加的最大额外金额 - 115% not to exceed $75)

如果您有沙盒帐户,我有一个调试页面here,其中显示了可能有用的数据 io。

请注意,我只是部分捕获 ("is_final_capture": false),因此如果您检查您的沙盒(买家)帐户,收取的总金额不会是全部金额

第..

【讨论】:

以上是关于REST api (C# lib) 上的贝宝快速结帐的主要内容,如果未能解决你的问题,请参考以下文章

经典 API 密钥与 REST API 凭证共存的贝宝可能性

使用 Webview 的贝宝

C# REST PayPal API - 如何传递自定义变量?

使用休息的贝宝交易

CodeIgniter 中的贝宝

为啥我的贝宝 api 调用失败并出现错误版本不支持?