我正在为我的 Laravel 7 项目之一使用 Cashier-Paddle。我正在尝试对客户收取“一次性”费用(简单费用)。我已按照官方文档将该包集成到我的项目中,但我遇到了这个问题“简单收费结帐 ID 必须是有效的结帐 ID ”。这是我已经完成的步骤。
使用composer安装了官方的laravel cashier-paddle包 需要 laravel/收银桨
发布了必要的迁移并在我的上添加了必要的 API 密钥 环境文件
在5月主布局刀片文件中添加了@paddlejs并更新了 verifyCsrfToken 中间件,因此它除了路由 paddle/*
向用户模型添加了 Billable 特征 配置了 webhook 路线和控制器
// Route example
Route::post('paddle/webhook','WebhookController@handleWebhook')->name('cashier.webhook')
// WebhookController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Paddle\Http\Controllers\WebhookController as CashierController;
class WebhookController extends CashierController
{
public function handleWebhook(Request $request)
{
logger('I can reach here!');
}
public function handlePaymentSucceeded($payload)
{
}
}
使用我的控制器生成了付费链接变量。
// paylink variable from controller
$payLink = auth()->user()->charge(12.99, 'Test Product Title');
终于在桨按钮 Blade 组件上使用了变量
// Blade file
<x-paddle-button :url="$payLink" class="px-8 py-4">
Buy
</x-paddle-button>
注意: 简单的充电不起作用,但特定产品的充电工作正常。例如,这个 auth()->user()->chargeProduct(619859) 工作正常。
这些是我在 Laravel 应用程序上集成 paddle simple chare 时已经遵循的步骤。希望这些信息可以对您有所帮助。如果我做错了什么或错过了任何步骤,请告诉我。如果有人能帮助我解决这个问题,我将非常感激。预先感谢。
感谢您访问该问题。经过一些研究后,我解决了这个问题。一切都很好。只需要在 charge 方法中指定 webhook URL 即可。我认为 laravel 文档中没有提到这一点。我发布答案,以便任何人将来都可以找到解决方案。
// paylink variable from controller
$payLink = auth()->user()->charge($total, 'Product Title', [
'webhook_url' => 'webhook URL here',
]);