1
  • Cashier Paddle 版本:1.0@beta
  • Laravel 版本:7.0
  • PHP版本:7.2.5

我正在为我的 laravel 7 项目之一使用收银台。我正在尝试对客户收取“一次性”费用(简单费用)。我已经按照官方文档将包集成到我的项目中,但我遇到了这个问题“简单收费结帐 id 必须是有效的结帐 id ”。这是我已经完成的步骤。

  • 使用 composer require laravel/cashier-paddle 安装了官方的 laravel cashier-paddle 包

  • 发布了必要的迁移并在我的 env 文件中添加了必要的 API 密钥

  • 在 may master 布局刀片文件中添加了 @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 变量。

    // paylink variable from controller
    $payLink = auth()->user()->charge(12.99, 'Test Product Title');
    
  • 最后使用了paddle-button 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 所遵循的步骤。希望这些信息对您有所帮助。如果我做错了什么或错过了任何步骤,请告诉我。如果有人能帮助我解决这个问题,我将非常感激。提前致谢。

4

1 回答 1

3

感谢您访问问题。在做了一些研究后,我已经解决了这个问题。一切都很好。只需要在charge方法中指定webhook URL即可。我认为 laravel 文档中没有提到它。我正在发布答案,以便将来任何人都可以获得解决方案。

// paylink variable from controller
$payLink = auth()->user()->charge($total, 'Product Title', [
   'webhook_url' => 'webhook URL here',

]);
于 2020-08-16T16:41:07.030 回答