php 实现付费
PHP 实现付费功能的方法
集成第三方支付网关
PayPal、Stripe、支付宝等支付网关提供API接口,通过调用这些接口实现支付功能。以Stripe为例,需要安装Stripe PHP库:
composer require stripe/stripe-php
支付处理示例代码:
\Stripe\Stripe::setApiKey('sk_test_your_key');
$charge = \Stripe\Charge::create([
'amount' => 1000, // 金额以分为单位
'currency' => 'usd',
'source' => $_POST['stripeToken'],
'description' => '示例付款'
]);
生成支付表单
创建HTML表单收集支付信息,使用隐藏字段传递订单详情:

<form action="/charge.php" method="post">
<script src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-key="pk_test_your_key"
data-amount="1000"
data-name="公司名称"
data-description="产品描述">
</script>
</form>
处理支付回调
支付完成后处理网关返回的异步通知,验证支付状态:
$payload = @file_get_contents('php://input');
$event = json_decode($payload);
if($event->type == 'charge.succeeded') {
// 更新订单状态为已支付
$order_id = $event->data->object->metadata->order_id;
update_order_status($order_id, 'paid');
}
本地支付记录管理

创建数据库表存储交易记录,包含字段:
CREATE TABLE payments (
id INT AUTO_INCREMENT PRIMARY KEY,
order_id VARCHAR(50) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
currency CHAR(3) NOT NULL,
status ENUM('pending','completed','failed') DEFAULT 'pending',
gateway VARCHAR(20) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
安全注意事项
验证支付金额与订单匹配,防止篡改:
if($_POST['amount'] != calculate_order_total($order_id)) {
die('金额不匹配');
}
使用HTTPS加密传输支付数据,定期清理敏感日志文件。






