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正式维护。如果它显然被弃用了,情况会好得多。遗憾的是,我将不得不扔掉许多已经编写的代码。