платежи php mollie периодические платежи

Мой код:

$customer = $mollie->customers->create([
"name"    => $name,
"email"   => $email,
]);

$customer->createSubscription([
"amount"          => [
"currency"    => 'USD',
"value"       => 20.00,
],
"interval"        => '2months',
"times"           => 3,
"description"     => $someDescription,
"webhookUrl"      => $webhook,
"method"          => NULL,
]);

$payment = $customer->createPayment([
"amount" => [
"currency"    => 'USD',
"value"       => 20.00,
],
"description"     => $someDescription,
"redirectUrl"     => $siteUrl,
"webhookUrl"      => $webhook,
"metadata" => [
"order_id" => $orderId,
],
"sequenceType" => \Mollie\Api\Types\SequenceType::SEQUENCETYPE_FIRST,
]);

Результат:

Неустранимая ошибка: необработанное исключение ‘Mollie \ Api \ Exceptions \ ApiException’
с сообщением «Ошибка выполнения вызова API (422: Unprocessable Entity): Нет
Подходящие мандаты найдены для клиента. Поле: customerId.

Что-то, что мне не хватает ??

0

Решение

Вам не хватает идентификатора клиента для клиента, которого вы создали ранее.

    $payment = $customer->createPayment([
"customerId"      => $customer->id, /* see #3 in documentation */
"amount" => [
"currency"    => 'USD',
"value"       => 20.00,
],
"description"     => $someDescription,
"redirectUrl"     => $siteUrl,
"webhookUrl"      => $webhook,
"metadata" => [
"order_id" => $orderId,
],
"sequenceType" => \Mollie\Api\Types\SequenceType::SEQUENCETYPE_FIRST,
]);
0

Другие решения

Я нахожу ответ на свой вопрос:
Чтобы добавить подписку для пользователя, необходимо сначала добавить платеж, а затем подписку.

        $customer = $mollie->customers->create([
"name"    => $fullName,
"email"   => $email,
]);

$payment = $customer->createPayment([
"amount" => [
"currency"    => $currency,
"value"       => $amount,
],
"description"     => $description,
"redirectUrl"     => $siteUrl,
"webhookUrl"      => $webhook,
"metadata" => [
"order_id" => $orderId,
],
"sequenceType" => \Mollie\Api\Types\SequenceType::SEQUENCETYPE_FIRST,
]);

$customer->createSubscription([
"amount"      => [
"currency"    => $currency,
"value"       => $amount,
],
"times"       => $recurringLimit,
"interval"    => $interval,
"description" => $description,
"webhookUrl"  => $webhook,
"method"      => NULL,
]);
0

Прежде чем создавать подписку, вы должны создать мандат ( $customer->createMandate )

0
По вопросам рекламы [email protected]