php 此客户没有任何遗留的已保存付款详细信息,但附加了付款方法

sczxawaw  于 2023-11-16  发布在  PHP
关注(0)|答案(2)|浏览(126)

尝试向客户收取服务费用时出现此错误。
此客户没有任何遗留的已保存付款详细信息,但附加了付款方法。请使用付款意向而不是创建费用: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次之前,它是成功地处理收费。然而,现在它显示上面提到的错误。
我将非常感谢您在解决这个问题上的帮助。

ztyzrc3y

ztyzrc3y1#

根据错误消息,您的客户已附加PaymentMethod,但未附加Token或Source。对于上下文,Charges API不支持使用PaymentMethod对象(即前缀为pm_)。您可以使用https://stripe.com/docs/api/payment_methods/customer_list查看客户附加的付款方法。
就像错误消息中提到的那样,如果您使用的是PaymentMethods:https://stripe.com/docs/api/payment_intents/create,则应该使用PaymentIntents API。PaymentIntents API也向后兼容令牌/源代码:https://stripe.com/docs/payments/payment-methods/transitioning#compatibility

tjrkku2a

tjrkku2a2#

我联系了Stripe支持解决这个问题。
“此客户没有任何旧版保存的付款详细信息,但附加了付款方法。请使用付款意向而不是创建费用:https://stripe.com/docs/payments/payment-intents/migration."
他们提供了以下资料:
根据他们的说法,用于收费支付的API已被弃用。虽然它目前正在运行,但它不再被维护,并且遇到了许多问题,这就是发生此错误的原因。他们建议使用Payment Intents API,如请求中提供的文档中详细说明的那样:https://stripe.com/docs/payments/payment-intents/migration

相关问题