如何为网站接入Coinbase Base支付系统?求Laravel站点Coinbase Commerce API文档
如何将Coinbase Base作为支付系统接入网站?
- 基础准备:注册Coinbase开发者账号,在Coinbase Commerce后台开启Base链支付支持,获取API密钥和Webhook密钥。
- 集成方案选择:
- 快速集成:使用Coinbase Commerce托管支付页面,在后台创建支付会话或永久收款链接,直接将生成的按钮代码嵌入网站前端,用户点击后跳转至Coinbase支付页面完成交易,无需复杂开发。
- 自定义链上集成:
- 前端展示Base链收款地址(可从Coinbase Commerce获取或通过钱包SDK生成)和待支付金额(转换为Base链兼容代币,如USDC)。
- 后端通过Base链区块浏览器API监听交易,确认指定地址收到足额代币且达到所需区块确认数后,更新订单状态。
- 测试与上线:先用Base测试网(Base Goerli)模拟支付验证流程,无误后切换至主网;配置Webhook接收支付状态通知,确保订单状态实时同步。
在Laravel网站中添加Coinbase支付方式及Coinbase Commerce API说明
Laravel集成步骤
- 安装官方SDK:
composer require coinbase/coinbase-commerce - 配置.env文件:
COINBASE_COMMERCE_API_KEY=你的_API密钥 COINBASE_COMMERCE_WEBHOOK_SECRET=你的_Webhook密钥 - 创建支付会话:
在控制器中生成Charge(支付会话),引导用户跳转至支付页面:use CoinbaseCommerce\ApiClient; use CoinbaseCommerce\Resources\Charge; public function createPayment(Request $request) { ApiClient::init(env('COINBASE_COMMERCE_API_KEY')); $chargeData = [ 'name' => '商品名称', 'description' => '商品描述', 'local_price' => [ 'amount' => '19.99', 'currency' => 'USD' ], 'pricing_type' => 'fixed_price', 'metadata' => [ 'order_id' => $request->order_id ] ]; $charge = Charge::create($chargeData); return redirect()->to($charge->hosted_url); } - 处理Webhook通知:
创建路由和控制器方法,验证签名并更新订单状态:use CoinbaseCommerce\Webhook; public function handleWebhook(Request $request) { $payload = $request->getContent(); $signature = $request->header('X-Cc-Webhook-Signature'); $secret = env('COINBASE_COMMERCE_WEBHOOK_SECRET'); try { $event = Webhook::constructEvent($payload, $signature, $secret); if ($event->type === 'charge:completed') { $orderId = $event->data->metadata->order_id; // 此处编写更新订单为已支付的逻辑 } return response()->json(['status' => 'ok']); } catch (\Exception $e) { return response()->json(['status' => 'error'], 400); } }
Coinbase Commerce API核心内容
- 核心资源:
- Charge:单次支付会话,用于创建临时支付链接;
- Checkout:永久收款链接,适用于固定商品/服务;
- Event:支付状态变更事件,通过Webhook推送。
- 认证:请求头携带
Authorization: Bearer {API_KEY}进行身份验证。 - 支付网络:支持Base链、以太坊、比特币等多条公链,可在后台配置启用。
- 事件类型:主要包括
charge:created(支付会话创建)、charge:completed(支付完成)、charge:failed(支付失败),用于实时同步订单状态。 - 测试模式:开启测试模式后,可使用测试API密钥模拟支付,无需真实代币。
内容的提问来源于stack exchange,提问作者Khandokar Nafis Jaman
相关产品推荐
相关产品推荐

