该客户没有任何已保存的旧付款详细信息,但附加了付款方式

问题描述 投票:0回答:1

尝试向客户收取服务费用时出现此错误。

该客户没有任何旧版保存的付款详细信息,但附加了付款方式。使用付款意图而不是创建费用:https://stripe.com/docs/ payments/ payment-intents/migration

这是代码

$charge = [
            'amount' => $totalCost * 100,
            'currency' => StripeHelper::CURRENCY,
            'description' => "recurring-" . $bookingid . "-C" . $weeks,
            'customer' => $source,
            "transfer_group" => "$bookingid-$minderId",
        ];
        try {
            $charge = $this->stripe->charges->create($charge);
        } catch (\Stripe\Error\Api $ex) {
            Yii::error($ex->getMessage());
            return ['error' => $ex->getMessage(), 'code' => $ex->getCode()];
        } catch (\Stripe\Error\InvalidRequest $ex) {
            Yii::error($ex->getMessage());
            return ['error' => $ex->getMessage(), 'code' => $ex->getCode()];
        } catch (\Exception $ex) {
            Yii::error($ex->getMessage());
            return ['error' => $ex->getMessage(), 'code' => $ex->getCode()];
        }

        return $charge;

当我之前执行此操作大约 20 到 30 次时,它成功处理了费用。但是,现在它显示上述错误。

非常感谢您帮助解决此问题。

php yii2 stripe-payments st
1个回答
0
投票

根据错误消息,您的客户附加了 PaymentMethod,但没有令牌或来源。对于上下文,Charges API 不支持使用 PaymentMethod 对象(即带有前缀

pm_
)。您可以使用 https://stripe.com/docs/api/ payment_methods/customer_list 查看客户附加了哪些付款方式。

就像错误消息提到的那样,如果您使用 PaymentMethods,则应该使用 PaymentIntents API:https://stripe.com/docs/api/ payment_intents/create。 PaymentIntents API 还向后兼容令牌/来源:https://stripe.com/docs/ payments/ payment-methods/transitioning#compatibility

© www.soinside.com 2019 - 2024. All rights reserved.