对不起,如果标题有点不透明,我保证我会在下面清除它:
首先,不久前我问了一个关于销售序列密钥的问题:
How can I execute a custom script after purchase with Ubercart for Drupal
我在那里发布的信息可能有助于澄清这个问题,但我对此表示怀疑,因为这个问题有点笼统。
基本上,我不想执行我的自定义代码,直到我知道付款已被清除以及我的帐户中的金额为止。我有点不确定触发的条件操作是什么,“客户完成结账”呢?当它说他们完成结账时,它一定意味着成功并且钱是在我的帐户中吗?
如果没有,我如何让Ubercart等到知道我从任何PSP (例如Google Checkout,PayPal等)获得资金来执行我的自定义代码?我无法解决,甚至可能吗?
答案 0 :(得分:0)
它没有记录或暴露为应该可靠的东西,但我认为使用“客户完成结账”触发器是可行的方法。
请记住以下内容适用于Ubercart 6.x-2.4。 (截至今日的最新版本)
从我看过的代码来看,触发器似乎只在成功的订单上执行。成功的订单是否意味着您已收到付款,这在很大程度上取决于您当前的配置以及您使用的不同支付网关或方法,但在一般情况和配置中。
该触发器仅从一个函数启动:
function uc_cart_complete_sale($order, $login = FALSE);
如果您在执行该功能时进行模块范围的搜索,它应该可以让您大致了解不同的情况。基本上我发现它是从几个支付模块(例如paypal和2checkout)以及当你到达cart/checkout/complete
drupal页面时执行的,这通常是成功的订单。您明确询问的paypal模块似乎在收到“已完成”的IPN状态时调用该函数。
尝试一些购买(对与错)并不难,看看你的触发器是否只在订单正确收费时执行。