yoomoney / yookassa-sdk-php

PHP SDK for YooKassa Payments API
https://yookassa.ru/developers
MIT License
68 stars 30 forks source link

Ошибка Error code: invalid_request. Parameter name: receipt #20

Open L0L1K1510 opened 3 years ago

L0L1K1510 commented 3 years ago

Добрый день. Помогите, пожалуйста, разобраться с ошибкой. Подключаю кассу к сайту Wordpress, но не хочу использовать Woocommerce. Поэтому написал плагин сам. При создании платежа выводит ошибку. изображение Создание платежа:

<?php

/**
 * Template Name: Страница тестового платежа
 */

?>
<?php
require dirname( __FILE__, 3 ) . '/plugins/yoomoney-wp/includes/yookassa/lib/autoload.php';
use YooKassa\Client;
$client = new Client();
$client->setAuth(get_option('shopid'), get_option('secretkey'));

  $user_id = get_current_user_id();
  $user = get_userdata($user_id);
  //$price = the_field('premium_price', 'options');
  $price = 40;
  $return_url = get_option('tyurl');

  $wpdb->insert(
    $wpdb->prefix . "payments",
    array(
      'payment_user_id' => $user_id,
      'payment_amount' => $price,
      'payment_title' => 'Покупка Premium'
    ),
    array(
      '%d',
      '%d',
      '%s'
    )
  );
  $payment_id = $wpdb->insert_id;

  $payment_names = Array(
    1 => 'webmoney',
    2 => 'yandex_money',
    3 => 'qiwi',
    4 => 'bank_card',
    5 => 'bank_card',
    6 => '',
    7 => 'mobile_balance',
    8 => 'mobile_balance',
    9 => 'mobile_balance',
    10 => 'alfabank',
    11 => 'sberbank'
  );

    $idempotenceKey = uniqid('', true);
    $response = $client->createPayment(
        array(
            'amount' => array(
                'value' => $price,
                'currency' => 'RUB',
            ),
            'payment_method_data' => array(
                'type' => 'bank_card',
            ),
            'confirmation' => array(
                'type' => 'redirect',
                'return_url' => $return_url,
            ),
            "reciept" => array(
              "customer" => array(
                "full_name" => $user->first_name && $user->last_name ? $user->first_name . ' ' . $user->last_name : $user->user_login,
                "email" => 'parkin.maks@yandex.ru'
              ),
              "items" => array(
                array(
                  "description" => 'Покупка Premium',
                  "quantity" => "1.00",
                  "amount" => array(
                    "value" => $price,
                    "currency" => "RUB"
                  ),
                  "vat_code" => "1",
                  "payment_mode" => "full_payment",
                  "payment_subject" => "service"
                )
              )
            ),
            'description' => 'Покупка Premium',
            'metadata' => array(
              'user_id' => $user_id,
              'payment_id' => $payment_id
            )
        ),
        $idempotenceKey
    );

    //get confirmation url
    $confirmationUrl = $response->getConfirmation()->getConfirmationUrl();
    $data['status'] = 200;
    $data['url'] = $confirmationUrl;
    echo json_encode($data);
    die();
    //header("Location: $confirmationUrl")
addfs commented 3 years ago

Параметр называется receipt а вы передаете reciept

L0L1K1510 commented 3 years ago

спасибо

L0L1K1510 commented 3 years ago

как доделаю, кину гх плагина