【问题标题】:Updating an order value with the PayPal PHP SDK使用 PayPal PHP SDK 更新订单价值
【发布时间】:2015-05-14 08:18:45
【问题描述】:

好的,这几天我一直在努力解决这个问题。我正在将支付流程构建到 PHP 应用程序中,该应用程序将允许在客户批准付款后追加销售产品。

我可以毫无问题地向客户收取付款,但如果他们选择任何需要更改订单价值的追加销售产品,那么即使按照文档中的内容,我也会收到错误消息我可以找到...

下面是我正在使用的测试函数,这是当用户在批准付款后被重定向回网站时调用的函数。

public function confirmOrder($payer_id, $payment_id, $incentives = false){

    //GET PAYMENT
    $payment = Payment::get($payment_id, $this->apiContext);

    //CREATE EXECUTION WITH PAYER ID
    $execution = new PaymentExecution();
    $execution->setPayerId($payer_id);

    //APPLY PAYMENT AMOUNT - Original amount was 7.00
    $amount = new Amount();
    $amount = $amount->setCurrency('GBP')->setTotal('8.00');

    //PATCH REPLACE
    $patchReplace = new Patch();
    $patchReplace = $patchReplace->setOp('replace')->setPath('/transactions/0/amount')->setValue($amount);

    //CREATE PATCH OBJECT
    $patchRequest = new PatchRequest();
    $patchRequest = $patchRequest->setPatches(array($patchReplace));

    try {
        $payment->update($patchRequest, $this->apiContext);
    } catch (PayPalConnectionException $ex) {
        return "PATCH ERROR: State(" . $payment->getState() . ") ".$ex->getData();
    }
}

这不是我将使用的最终代码,但现在我只是想在构建更多逻辑之前更新订单。这段代码给了我以下错误:

PATCH ERROR: State(created) {"name":"PAYMENT_STATE_INVALID","message":"由于当前付款状态,此请求无效","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#PAYMENT_STATE_INVALID" ,"debug_id":"9caacdc1d652b"}

您可以看到我正在输出 getState(),它作为“已创建”返回,这通常可以更新我能找到的所有内容,但它仍然失败。

是否有其他人有使用 PayPal PHP SDK 的经验并可以帮助我指明正确的方向?

【问题讨论】:

    标签: php paypal paypal-rest-sdk


    【解决方案1】:

    在 PayPal 中,一旦用户从同意屏幕批准付款,就无法更改金额,因为您可以理解,用户同意只支付他/她在同意屏幕上看到的金额。在用户批准后修改金额是不允许的,这就是您看到该状态异常的原因,因为该状态已被批准。

    无论如何,看看你的场景,我想你可能有兴趣创建ordercapture,而不是销售。 此外,在我们的 PayPal-PHP-SDK 中,有很多有趣的文档可以帮助您更好地理解PHP-SDK。我们还提供了很多runnable samples,您可以在本地机器上通过一个命令进行设置。

    【讨论】:

    • 我们的 PayPal 客户经理向我解释说,订单总额可以更改。这是内置的,因此公司可以在授权后提供激励性追加销售。它也用于运费/税费。当客户授权时,应用程序可以从 PayPal 获取客户位置,以提供正确的邮费或增值税率。在包括本指南在内的一些文档中也提到了这一点(请参阅标题为完成快速结帐交易的部分):developer.paypal.com/webapps/developer/docs/classic/…
    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 2020-04-29
    • 2016-03-21
    • 2021-12-11
    • 2020-10-18
    • 2020-05-20
    • 2021-02-24
    • 2017-09-08
    相关资源
    最近更新 更多