Я создаю отдельные элементы подписки для каждой подписки пользователя, потому что я хочу, чтобы каждый элемент имел детали конфигурации. описание при оформлении заказа.
Проблема в том, что я хочу иметь возможность идентифицировать каждую отдельную подписку, чтобы знать, какую из них редактировать/отменять в будущем.
Я пробовал использовать метаданные для элемента, атрибуты продукта и цены (из которых API принимает их только в разделе «Продукт»), а API не принимает Lookup_key нигде в позиции.
Метаданные, хотя и принимаются API, на самом деле никогда не отображаются в полосе или в веб-хуке с подтверждением платежа. (метаданные просто отображаются без позиций)
Код: Выделить всё
$lineItems;
foreach ($cartItems as $job){
SubscriptionJobs::createJobForPayment($job,$userId,$cartId,$transactionId);
$jobId = $job->item_id;
$item = [
'price_data' => [
'currency' =>'usd',
'unit_amount' => $unitAmount,
'product_data' => [
'description' => $description,
'name' => $subName,
'metadata' => ['job_id'=>$jobId],
],
'recurring' => [
'interval' => Carts::getPaymentFrequency($cartId),
],
],
'quantity' => '1',
];
$lineItems[] = $item;
};
$checkoutData = [
'line_items' => [$lineItems],
'client_reference_id' => $cartId,
'subscription_data' => ['metadata' => [
'cart_id' => $cartId,
'user_id' => $userId,
'transaction_id'=> $transactionId]],
'mode' => 'subscription',
'success_url' => $DOMAIN . '/success',
'cancel_url' => $DOMAIN . '/cancel',
];
if($userData->stripe_id != ''){
$checkoutData['customer'] = $userData->stripe_id;
}else{
$checkoutData['customer_email'] = $userEmail;
}
$checkout_session = \Stripe\Checkout\Session::create($checkoutData);
dd($checkout_session);
return redirect($checkout_session->url);
Есть ли способ определить, какая подписка что при их создании во время оформления заказа?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... identifier