Php IYZIPY laravel-尝试进行单次充电时签名无效

Php IYZIPY laravel-尝试进行单次充电时签名无效,php,laravel,Php,Laravel,形势 我正在使用来处理我的应用程序中的付款 关于订阅计划,一切正常 但我也需要在用户购买特定产品时向其收取单一费用。 这部分不起作用 文档 以下是关于使用iyzipay laravel一次性收费的唯一可用文档: 表格 这是producs表 用户表有一个正确的iyzipay\u键字段: 代码 我以雄辩的方式储存产品: $product = new Product; $product->name = $package->name; $product->category = '

形势

我正在使用来处理我的应用程序中的付款

关于订阅计划,一切正常
但我也需要在用户购买特定产品时向其收取单一费用。 这部分不起作用

文档

以下是关于使用iyzipay laravel一次性收费的唯一可用文档:

表格

这是producs表

用户表有一个正确的
iyzipay\u键
字段:

代码

我以雄辩的方式储存产品:

$product = new Product;
$product->name = $package->name;
$product->category = 'extra-package';
$product->type = BasketItemType::VIRTUAL;
$product->price = $package->total_cost;
$product->save();
然后,我对
pay
方法进行测试调用,在该方法中,我通过了产品集合、货币、分期付款数量和订阅:

$products = Product::where('id', 1)->get();
$subscription = Subscription::where('billable_id', $user->id)->first();

$user->pay($products, 'TRY', 1, $subscription);
错误消息

这是我从API调用中得到的结果:

message: "589004: Invalid signature"
exception: "Iyzico\IyzipayLaravel\Exceptions\Transaction\TransactionSaveException"
file: "my_project/vendor/iyzico/iyzipay-laravel/src/IyzipayLaravel.php"
line: 121
(589004是使用的测试信用卡的前6个号码。信用卡测试号码取自本页的列表:)

我一直在尝试调整库源代码,但没有用

第三方源代码

这是应付特征的
pay()
方法

/**
 * Single payment for the payable
 *
 * @param Collection $products
 * @param string $currency
 * @param int $installment
 * @param bool $subscription
 * @return Transaction
 */
public function pay(Collection $products, $currency = 'TRY', $installment = 1, $subscription = false): Transaction
{
    return IyzipayLaravel::singlePayment($this, $products, $currency, $installment, $subscription);
}
这是IyzipayLaravel类的
singlePayment()
方法:

/**
 * @param PayableContract $payable
 * @param Collection $products
 * @param $currency
 * @param $installment
 * @param bool $subscription
 *
 * @return Transaction $transactionModel
 * @throws TransactionSaveException
 */
public function singlePayment(Payable $payable, Collection $products, $currency, $installment, $subscription = false): Transaction
{
    $this->validateBillable($payable);
    $this->validateHasCreditCard($payable);

    $messages = []; // @todo imporove here
    foreach ($payable->creditCards as $creditCard) {
        try {
            $transaction = $this->createTransactionOnIyzipay(
                $payable,
                $creditCard,
                compact('products', 'currency', 'installment'),
                $subscription
            );

            return $this->storeTransactionModel($transaction, $payable, $products, $creditCard);
        } catch (TransactionSaveException $e) {
            $messages[] = $creditCard->number . ': ' . $e->getMessage();
            continue;
        }
    }

    throw new TransactionSaveException(implode(', ', $messages));
}
问题:

如何使用iyzipay laravel进行单次充电


谢谢

iyzipay laravel已被弃用于订阅和单一支付

认购

文件:

客户:

一次性付款

文件:

客户:


如果您可以将您的电子邮件地址转发到integration@iyzico.com,我们很乐意提供帮助。

好的,谢谢您的回复。谢谢你的帮助。我会写,以防我会有一些问题!然而,在官方的iyzipay laravel github回购协议中,没有提及不推荐的内容。上面写着:现在由iyzico正式维护。如果它显然被弃用了,情况会好得多。遗憾的是,我将不得不扔掉许多已经编写的代码。