PHP SDK文档

LakShine支付平台 - 版本 v2.0

更新时间:2025-01-05

目录

1. 概述

LakShinePaySDK.php 是专为LakShine支付平台开发的PHP SDK,提供了简单易用的接口封装,支持统一下单、订单查询、退款等核心功能。

1.1 特性

1.2 系统要求

2. 安装配置

2.1 下载SDK

从官网下载 LakShinePaySDK.php 文件,或使用以下命令:

wget https://api.lakshine.com/sdk/LakShinePaySDK.php

2.2 引入SDK

<?php require_once 'LakShinePaySDK.php'; ?>

2.3 初始化配置

<?php // 创建SDK实例 $sdk = new LakShinePaySDK([ 'mchid' => '123456789', // 商户ID 'secretkey' => 'your_secret_key', // 商户密钥 'api_url' => 'https://api.lakshine.com', // API地址 'timeout' => 30 // 请求超时时间(秒) ]); ?>

3. 基础使用

3.1 统一下单

<?php // 统一下单 $orderData = [ 'out_trade_no' => 'TEST' . date('YmdHis') . rand(1000, 9999), 'amount' => '100.00', 'channel' => 'lakshine', 'notify_url' => 'https://your-domain.com/notify', 'return_url' => 'https://your-domain.com/return', 'body' => '商品购买' ]; try { $result = $sdk->unifiedOrder($orderData); if ($result['result_code'] === 'SUCCESS') { $payUrl = $result['charge']['credential']['charge_url']; echo "支付链接:" . $payUrl; } else { echo "下单失败:" . $result['result_msg']; } } catch (Exception $e) { echo "异常:" . $e->getMessage(); } ?>

3.2 订单查询

<?php // 查询订单 try { $result = $sdk->queryOrder('TEST202501050001'); if ($result['result_code'] === 'SUCCESS') { $status = $result['charge']['status']; echo "订单状态:" . $status; } } catch (Exception $e) { echo "查询失败:" . $e->getMessage(); } ?>

3.3 申请退款

<?php // 申请退款 $refundData = [ 'out_trade_no' => 'TEST202501050001', 'out_refund_no' => 'REFUND' . date('YmdHis') . rand(1000, 9999), 'refund_amount' => '50.00' ]; try { $result = $sdk->refund($refundData); if ($result['result_code'] === 'SUCCESS') { echo "退款申请成功"; } else { echo "退款失败:" . $result['result_msg']; } } catch (Exception $e) { echo "退款异常:" . $e->getMessage(); } ?>

4. API参考

4.1 构造函数

public function __construct(array $config)

参数:

参数名 类型 必填 说明
mchid string 商户ID
secretkey string 商户密钥
api_url string API地址,默认:https://api.lakshine.com
timeout int 请求超时时间,默认:30秒

4.2 统一下单方法

public function unifiedOrder(array $orderData): array

参数:

参数名 类型 必填 说明
out_trade_no string 商户订单号
amount string 支付金额
channel string 支付渠道
notify_url string 异步通知地址
return_url string 同步跳转地址
body string 商品描述

4.3 订单查询方法

public function queryOrder(string $outTradeNo): array

4.4 退款方法

public function refund(array $refundData): array

4.5 验证签名方法

public function verifySign(array $data, string $sign): bool

5. 完整示例

5.1 完整的支付流程

<?php require_once 'LakShinePaySDK.php'; // 初始化SDK $sdk = new LakShinePaySDK([ 'mchid' => '123456789', 'secretkey' => 'your_secret_key', 'api_url' => 'https://api.lakshine.com' ]); // 1. 创建订单 $orderData = [ 'out_trade_no' => 'TEST' . date('YmdHis') . rand(1000, 9999), 'amount' => '100.00', 'channel' => 'lakshine', 'notify_url' => 'https://your-domain.com/notify', 'return_url' => 'https://your-domain.com/return', 'body' => '商品购买' ]; try { $result = $sdk->unifiedOrder($orderData); if ($result['result_code'] === 'SUCCESS') { $payUrl = $result['charge']['credential']['charge_url']; // 跳转到支付页面 header('Location: ' . $payUrl); exit; } else { echo "下单失败:" . $result['result_msg']; } } catch (Exception $e) { echo "系统异常:" . $e->getMessage(); } ?>

5.2 异步通知处理

<?php require_once 'LakShinePaySDK.php'; // 初始化SDK $sdk = new LakShinePaySDK([ 'mchid' => '123456789', 'secretkey' => 'your_secret_key' ]); // 接收异步通知 $notifyData = $_POST; // 验证签名 if ($sdk->verifySign($notifyData, $notifyData['sign'])) { // 签名验证通过 if ($notifyData['status'] === 'SUCCESS') { // 支付成功,更新订单状态 $outTradeNo = $notifyData['out_trade_no']; $tradeNo = $notifyData['trade_no']; $amount = $notifyData['amount']; // 这里添加您的业务逻辑 updateOrderStatus($outTradeNo, 'paid', $tradeNo, $amount); echo 'SUCCESS'; // 返回成功标识 } else { echo 'FAIL'; } } else { // 签名验证失败 echo 'FAIL'; } function updateOrderStatus($outTradeNo, $status, $tradeNo, $amount) { // 更新订单状态的业务逻辑 // 这里需要根据您的数据库结构来实现 } ?>

6. 错误处理

6.1 异常类型

异常类型 说明 处理方式
InvalidArgumentException 参数错误 检查传入参数
RuntimeException 运行时错误 检查网络连接和API地址
Exception 通用异常 查看异常信息

6.2 错误处理示例

<?php try { $result = $sdk->unifiedOrder($orderData); // 处理成功结果 } catch (InvalidArgumentException $e) { // 参数错误 error_log("参数错误:" . $e->getMessage()); echo "参数错误,请检查输入"; } catch (RuntimeException $e) { // 运行时错误 error_log("运行时错误:" . $e->getMessage()); echo "系统繁忙,请稍后重试"; } catch (Exception $e) { // 其他异常 error_log("未知错误:" . $e->getMessage()); echo "系统异常,请联系技术支持"; } ?>

7. 常见问题

7.1 签名验证失败

问题:调用接口时返回签名错误
解决方案:
  • 检查商户密钥是否正确
  • 确认参数排序是否正确
  • 验证MD5算法实现

7.2 异步通知接收不到

问题:支付成功后没有收到异步通知
解决方案:
  • 检查notify_url是否可访问
  • 确认服务器防火墙设置
  • 验证网络连接

7.3 订单状态不同步

问题:支付成功但订单状态未更新
解决方案:
  • 检查异步通知处理逻辑
  • 确认数据库更新操作
  • 验证订单号匹配