Transfer模块提供了明确的参数接口,替代了原来难以理解的数组参数方式。新的API更加类型安全,易于理解和维护。
use App\Module\Transfer\Services\TransferService;
// 创建转出订单 - 完整参数
$result = TransferService::createTransferOut(
transferAppId: 1, // 划转应用ID
userId: 12345, // 用户ID
amount: '100.50', // 转出金额
password: 'user_password', // 安全密码
googleCode: '123456', // 谷歌验证码(可选)
outUserId: 'external_user_123', // 外部用户ID(可选)
remark: '游戏充值', // 备注(可选)
callbackData: ['game_id' => 'abc'] // 回调数据(可选)
);
if (is_string($result)) {
// 处理错误
echo "创建失败: " . $result;
} else {
// 成功,$result 是 TransferOrderDto 对象
echo "订单创建成功,ID: " . $result->id;
}
// 快速创建转出订单 - 只需必要参数
$result = TransferService::quickCreateTransferOut(
transferAppId: 1,
userId: 12345,
amount: '100.50',
password: 'user_password'
);
// 创建转入订单 - 完整参数
$result = TransferService::createTransferIn(
transferAppId: 1, // 划转应用ID
userId: 12345, // 用户ID
businessId: 'BIZ_20250618_001', // 业务订单ID
amount: '100.50', // 转入金额
outUserId: 'external_user_123', // 外部用户ID(可选)
remark: '游戏提现', // 备注(可选)
callbackData: ['game_id' => 'abc'] // 回调数据(可选)
);
// 快速创建转入订单 - 只需必要参数
$result = TransferService::quickCreateTransferIn(
transferAppId: 1,
userId: 12345,
businessId: 'BIZ_20250618_001',
amount: '100.50'
);
如果您的代码仍在使用数组参数,可以使用向后兼容方法:
// 向后兼容 - 转出订单
$data = [
'transfer_app_id' => 1,
'user_id' => 12345,
'amount' => '100.50',
'password' => 'user_password',
'google_code' => '123456',
'out_user_id' => 'external_user_123',
'remark' => '游戏充值',
'callback_data' => ['game_id' => 'abc']
];
$result = TransferService::createTransferOutFromArray($data);
// 向后兼容 - 转入订单
$data = [
'transfer_app_id' => 1,
'user_id' => 12345,
'business_id' => 'BIZ_20250618_001',
'amount' => '100.50',
'out_user_id' => 'external_user_123',
'remark' => '游戏提现',
'callback_data' => ['game_id' => 'abc']
];
$result = TransferService::createTransferInFromArray($data);
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transferAppId | int | 是 | 划转应用ID |
| userId | int | 是 | 用户ID |
| amount | string | 是 | 转出金额(字符串格式,支持小数) |
| password | string | 是 | 用户安全密码 |
| googleCode | string|null | 否 | 谷歌验证码(6位数字) |
| outUserId | string|null | 否 | 外部用户ID |
| remark | string|null | 否 | 备注信息 |
| callbackData | array | 否 | 回调数据(键值对数组) |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transferAppId | int | 是 | 划转应用ID |
| userId | int | 是 | 用户ID |
| businessId | string | 是 | 业务订单ID(外部系统的订单标识) |
| amount | string | 是 | 转入金额(字符串格式,支持小数) |
| outUserId | string|null | 否 | 外部用户ID |
| remark | string|null | 否 | 备注信息 |
| callbackData | array | 否 | 回调数据(键值对数组) |
所有创建方法都返回 TransferOrderDto|string:
TransferOrderDto 对象失败时返回错误信息字符串
$result = TransferService::createTransferOut(/* 参数 */);
if (is_string($result)) {
// 处理错误
$errorMessage = $result;
// 记录日志、返回错误响应等
} else {
// 处理成功
$order = $result; // TransferOrderDto 对象
$orderId = $order->id;
$status = $order->status;
$amount = $order->amount;
// 其他业务逻辑
}
旧代码:
$data = [
'transfer_app_id' => 1,
'user_id' => 12345,
'amount' => '100.50',
'password' => 'password'
];
$result = TransferService::createTransferOut($data);
新代码:
$result = TransferService::createTransferOut(
transferAppId: 1,
userId: 12345,
amount: '100.50',
password: 'password'
);