Laravel.io
HATA:
Iyzipay\Model\Payment {#1340 ▼ // app\Repositories\AppointmentRepository.php:100
  -rawResult: "{"status":"failure","errorCode":"1000","errorMessage":"Geçersiz imza","locale":"tr","systemTime":1688849665367}"
  -status: "failure"
  -errorCode: "1000"
  -errorMessage: "Geçersiz imza"
  -errorGroup: null
  -locale: "tr"
  -systemTime: 1688849665367
  -conversationId: null
  -price: null
  -paidPrice: null
  -installment: null
  -currency: null
  -paymentId: null
  -paymentStatus: null
  -fraudStatus: null
  -merchantCommissionRate: null
  -merchantCommissionRateAmount: null
  -iyziCommissionRateAmount: null
  -iyziCommissionFee: null
  -cardType: null
  -cardAssociation: null
  -cardFamily: null
  -cardToken: null
  -cardUserKey: null
  -binNumber: null
  -basketId: null
  -paymentItems: null
  -connectorName: null
  -authCode: null
  -phase: null
  -lastFourDigits: null
  -posOrderId: null
}
---------------
KOD: app\Repositories\AppointmentRepository.php
/**
 * Store a newly created resource in storage.
 */
public function store(AppointmentRequest $req): JsonResponse
{
    // dd($request->validated());

    try {
        $user = User::find(auth()->user()->id);
        $user = new UserResource($user);

        $data = $req->validated();
        $data['user_id'] =  $user->id;
        $data['conversation_id'] = $req->psychologist_id;
        $data['basket_id'] = 'OT#BASID' . Str::random(10);
        $data['buyer_id'] = $user->id;
        $data['registration_date'] = now();
        $data['card_save'] = $req->card_save ? 1 : 0;
        $data['invoice_full_name'] = $data['invoice_name'] . ' ' . $data['invoice_surname'];
        $data['ip_address'] = $req->ip();

        // Iyzico Ödeme İşlemleri
        $payment = $this->iyzicoPayment($data, $user);

       // dd($payment);

        if (isset($payment)) {
            return response()->json([
                'status' => [
                    'code' => Response::HTTP_CREATED,
                    'message' => 'Randevunuz başarıyla oluşturuldu.',
                ],
                'payment' => $payment,
            ], Response::HTTP_CREATED);
        }
    } catch (\Exception $e) {
        throw new ServerErrorException('randevunuz', $e);
    }
}

public function iyzicoPayment($data, $user): object
{
    $options = new \Iyzipay\Options();
    $options->setApiKey(config('services.iyzico.api_key'));
    $options->setSecretKey(config('services.iyzico.secret_key'));
    $options->setBaseUrl(config('services.iyzico.base_url'));

    $request = new \Iyzipay\Request\CreatePaymentRequest();
    $request->setLocale(\Iyzipay\Model\Locale::TR);
    // $request->setConversationId($data['conversation_id']);
    $request->setPrice("1");
    $request->setPaidPrice("1");
    $request->setCurrency(\Iyzipay\Model\Currency::TL);
    $request->setInstallment(1);
    $request->setBasketId($data['basket_id']);
    $request->setPaymentChannel(\Iyzipay\Model\PaymentChannel::WEB);
    $request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);

    $paymentCard = new \Iyzipay\Model\PaymentCard();
    $paymentCard->setCardHolderName($data['card_name']);
    $paymentCard->setCardNumber($data['card_number']);
    $paymentCard->setExpireMonth($data['card_month']);
    $paymentCard->setExpireYear($data['card_year']);
    $paymentCard->setCvc($data['card_cvv']);
    $paymentCard->setRegisterCard($data['card_save']);
    $request->setPaymentCard($paymentCard);

    $buyer = new \Iyzipay\Model\Buyer();
    $buyer->setId($data['buyer_id']);
    $buyer->setName($data['invoice_name']);
    $buyer->setSurname($data['invoice_surname']);
    $buyer->setGsmNumber($user->phone);
    $buyer->setEmail($user->email);
    $buyer->setIdentityNumber($user->identity_number);
    $buyer->setLastLoginDate($user->last_activity_at);
    $buyer->setRegistrationDate($data['registration_date']);
    $buyer->setRegistrationAddress($data['invoice_address']);
    $buyer->setIp($data['ip_address']);
    $buyer->setCity($data['invoice_city']);
    $buyer->setCountry("Turkey");
    $buyer->setZipCode($data['invoice_zipcode']);
    $request->setBuyer($buyer);

    $shippingAddress = new \Iyzipay\Model\Address();
    $shippingAddress->setContactName($data['invoice_full_name']);
    $shippingAddress->setCity($data['invoice_city']);
    $shippingAddress->setCountry("Turkey");
    $shippingAddress->setAddress($data['invoice_address']);
    $shippingAddress->setZipCode($data['invoice_zipcode']);
    $request->setShippingAddress($shippingAddress);

    $billingAddress = new \Iyzipay\Model\Address();
    $billingAddress->setContactName($data['invoice_full_name']);
    $billingAddress->setCity($data['invoice_city']);
    $billingAddress->setCountry("Turkey");
    $billingAddress->setAddress($data['invoice_address']);
    $billingAddress->setZipCode($data['invoice_zipcode']);
    $request->setBillingAddress($billingAddress);

    $basketItems = array();
    $firstBasketItem = new \Iyzipay\Model\BasketItem();
    $firstBasketItem->setId($data['basket_id']);
    $firstBasketItem->setName("OT Session");
    $firstBasketItem->setCategory1("Session Package");
    $firstBasketItem->setItemType(\Iyzipay\Model\BasketItemType::VIRTUAL);
    $firstBasketItem->setPrice($data['invoice_pricing']);
    $basketItems[0] = $firstBasketItem;
    $request->setBasketItems($basketItems);

    return \Iyzipay\Model\Payment::create($request, $options);
}

Please note that all pasted data is publicly available.