首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在成功执行之后,快捷结帐支付仍然返回空的相关资源。

即使在成功执行之后,快捷结帐支付仍然返回空的相关资源。
EN

Stack Overflow用户
提问于 2017-02-09 11:09:00
回答 1查看 653关注 0票数 1

编辑:

正如@bluepnume所指出的,这可能是一个bug,以后会修复。

在我的例子中,我做了同样的事情(创建、支付/执行支付),但是在服务器端,没有使用checkout.js,使用REST,现在一切都很好。

唯一的区别是,我将客户机重定向到PayPal (使用$payment->getApprovalLink()),而不是使用checkout.js生成的现场照明盒。

原始问题:

我将PayPal快捷签出与基本客户端集成集成在一起。

一切看起来都很好。付款顺利完成,我可以从Rest请求和卖方帐户(Sandbox)中看到已完成/批准的付款。

然而,即使在成功执行之后,付款仍未完成。我试图在取消订单后从API中退款,但是在成功阅读支付数据之后,我无法在支付事务中接收到相关的资源。

JS代码(工作正常):

代码语言:javascript
复制
paypal.Button.render({
    env: $form.find('[name="env"]').val(),
    client: {
        sandbox:    $form.find('[name="client_id"]').val(),
        production: $form.find('[name="client_id"]').val()
    },
    locale: 'it_IT',
    commit: true, // Optional: show a 'Pay Now' button in the checkout flow
    payment: function() {
        var env    = this.props.env;
        var client = this.props.client;
        return paypal.rest.payment.create(env, client, {
            transactions: [
                {
                    custom: $form.find('[name="custom"]').val(),
                    amount: {
                        total: $form.find('[name="subtotal"]').val(),
                        currency: $form.find('[name="currency_code"]').val()
                    },
                    description: $form.find('[name="item_name"]').val(),
                }
            ],
            redirect_urls: {
                "return_url": $form.find('[name="return"]').val(),
                "cancel_url": $form.find('[name="notify_url"]').val()
            }
        });
    },
    onAuthorize: function(data, actions) {
        return actions.payment.execute().then(function() {
            actions.payment.get().then(function(data) {
                pjQ.$.post($form.find('[name="notify_url"]').val(), data).done(function (data) {
                    return actions.redirect();
                });
            });
        });
    },
    onCancel: function(data, actions) {
        return actions.redirect();
    }
}, '#paypal-button');

PHP代码:

代码语言:javascript
复制
$payment = \PayPal\Api\Payment::get($paymentId, $apiContext); // It's ok
$transactions = $payment->getTransactions(); // It's ok
$relatedResources = $transactions[0]->getRelatedResources(); // Empty...

// I can't use the code below as $relatedResources is empty
$sale = $relatedResources[0]->getSale();
$saleId = $sale->getId();

$sale = new \PayPal\Api\Sale();
$sale->setId($saleId);

$refundedSale = $sale->refundSale($refundRequest, $apiContext);

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 17:47:06

这是一个众所周知的问题,很快就会有解决办法。见https://github.com/paypal/paypal-checkout/issues/143

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42135084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档