|
@@ -82,10 +82,38 @@ class TaxiUserWithdraw extends AdminController
|
|
|
IResponse::failure('司机账户错误,请联系管理员处理');
|
|
IResponse::failure('司机账户错误,请联系管理员处理');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
// 写入资金记录
|
|
// 写入资金记录
|
|
|
$Users = new Users();
|
|
$Users = new Users();
|
|
|
- $Users->changePartnership($user['id'], $withdraw['amount'], '资产提现失败退还', 20,true);
|
|
|
|
|
|
|
+ $Users->changePartnership($user['id'], $withdraw['amount'], '资产余额提现失败退还', 20,true);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 打款到账
|
|
|
|
|
+ else if ($params['status'] == 20){
|
|
|
|
|
+ $wechat = sys_config('', 'wechat');
|
|
|
|
|
+ $config = [
|
|
|
|
|
+ // 前面的appid什么的也得保留哦
|
|
|
|
|
+ 'app_id' => $wechat['mini_appid'],
|
|
|
|
|
+ 'mch_id' => $wechat['pay_mch_id'],
|
|
|
|
|
+ 'key' => $wechat['pay_secret_key'],
|
|
|
|
|
+ // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
|
|
|
|
|
+ 'cert_path' => $wechat['cert_path'], // XXX: 绝对路径!!!!
|
|
|
|
|
+ 'key_path' => $wechat['key_path'], // XXX: 绝对路径!!!!
|
|
|
|
|
+ ];
|
|
|
|
|
+ $user = Users::findBy($withdraw['user_id']);
|
|
|
|
|
+ // 创建应用实例
|
|
|
|
|
+ $app = Factory::payment($config);
|
|
|
|
|
+ $result = $app->transfer->toBalance([
|
|
|
|
|
+ 'partner_trade_no' => $withdraw['order_no'], // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
|
|
|
|
|
+ 'openid' => $user['open_id'],
|
|
|
|
|
+ 'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
|
|
|
|
|
+ 're_user_name' => $withdraw['real_name'], // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
|
|
|
|
|
+ 'amount' => $withdraw['amount'] * 100, // 企业付款金额,单位为分
|
|
|
|
|
+ 'desc' => '司机用户提现', // 企业付款操作说明信息。必填
|
|
|
|
|
+ ]);
|
|
|
|
|
+ $result = $result['return_code'] == 'SUCCESS' && $result['result_code'] != 'FAIL';
|
|
|
|
|
+ if(!$result){
|
|
|
|
|
+ Db::rollback();
|
|
|
|
|
+ IResponse::failure('司机账户错误,请联系管理员处理');
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Db::commit();
|
|
Db::commit();
|
|
@@ -128,30 +156,65 @@ class TaxiUserWithdraw extends AdminController
|
|
|
$withdraw = model('common/UsersWithdraw')->getBy($id);
|
|
$withdraw = model('common/UsersWithdraw')->getBy($id);
|
|
|
if ($this->request->isDelete()){
|
|
if ($this->request->isDelete()){
|
|
|
$withdraw->deleteBy($id);
|
|
$withdraw->deleteBy($id);
|
|
|
- }else
|
|
|
|
|
|
|
+ }else{
|
|
|
// 等待审核状态下才做更新
|
|
// 等待审核状态下才做更新
|
|
|
- if ($withdraw['status'] == 1){
|
|
|
|
|
- $withdraw->allowField(true)->updateBy($id, $params);
|
|
|
|
|
|
|
+ if ($withdraw['status'] == 10){
|
|
|
Db::startTrans();
|
|
Db::startTrans();
|
|
|
try {
|
|
try {
|
|
|
- if ($params['status'] == 2){
|
|
|
|
|
|
|
+ if(!$withdraw->allowField(true)->updateBy($id, $params)){
|
|
|
|
|
+ Db::rollback();
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 拒绝退款
|
|
|
|
|
+ if($params['status'] == 30){
|
|
|
// 查用户
|
|
// 查用户
|
|
|
$user = model('common/Users')->getBy($withdraw['user_id']);
|
|
$user = model('common/Users')->getBy($withdraw['user_id']);
|
|
|
- // 更新资金
|
|
|
|
|
- $user->where(['id' => $withdraw['user_id']])->setDec('balance', $withdraw['amount']);
|
|
|
|
|
|
|
+ if(empty($user)){
|
|
|
|
|
+ Db::rollback();
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 写入资金记录
|
|
// 写入资金记录
|
|
|
- model('common/UsersBalanceRecord')::create([
|
|
|
|
|
- 'user_id' => $withdraw['user_id'],
|
|
|
|
|
- 'dec_amount' => $withdraw['amount'],
|
|
|
|
|
- 'aft_amount' => round($user['balance'] - $withdraw['amount']),
|
|
|
|
|
- 'remark' => '主动提现,¥' . $withdraw['amount'] . ',单号;' . $withdraw['draw_no']
|
|
|
|
|
- ], true);
|
|
|
|
|
|
|
+ $Users = new Users();
|
|
|
|
|
+ $Users->changePartnership($user['id'], $withdraw['amount'], '资产余额提现失败退还', 20,true);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 打款到账
|
|
|
|
|
+ else if ($params['status'] == 20){
|
|
|
|
|
+ $wechat = sys_config('', 'wechat');
|
|
|
|
|
+ $config = [
|
|
|
|
|
+ // 前面的appid什么的也得保留哦
|
|
|
|
|
+ 'app_id' => $wechat['mini_appid'],
|
|
|
|
|
+ 'mch_id' => $wechat['pay_mch_id'],
|
|
|
|
|
+ 'key' => $wechat['pay_secret_key'],
|
|
|
|
|
+ // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
|
|
|
|
|
+ 'cert_path' => $wechat['cert_path'], // XXX: 绝对路径!!!!
|
|
|
|
|
+ 'key_path' => $wechat['key_path'], // XXX: 绝对路径!!!!
|
|
|
|
|
+ ];
|
|
|
|
|
+ $user = Users::findBy($withdraw['user_id']);
|
|
|
|
|
+ // 创建应用实例
|
|
|
|
|
+ $app = Factory::payment($config);
|
|
|
|
|
+ $result = $app->transfer->toBalance([
|
|
|
|
|
+ 'partner_trade_no' => $withdraw['order_no'], // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
|
|
|
|
|
+ 'openid' => $user['open_id'],
|
|
|
|
|
+ 'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
|
|
|
|
|
+ 're_user_name' => $withdraw['real_name'], // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
|
|
|
|
|
+ 'amount' => $withdraw['amount'] * 100, // 企业付款金额,单位为分
|
|
|
|
|
+ 'desc' => '司机用户提现', // 企业付款操作说明信息。必填
|
|
|
|
|
+ ]);
|
|
|
|
|
+ $result = $result['return_code'] == 'SUCCESS' && $result['result_code'] != 'FAIL';
|
|
|
|
|
+ if(!$result){
|
|
|
|
|
+ Db::rollback();
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- Db::commit();
|
|
|
|
|
- }catch (\Exception $e){
|
|
|
|
|
|
|
+ } catch (\Exception $exception){
|
|
|
Db::rollback();
|
|
Db::rollback();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
return IResponse::success([],'操作成功');
|
|
return IResponse::success([],'操作成功');
|
|
|
}
|
|
}
|