Files
mier-php/application/api/model/HuiFu.php

236 lines
9.4 KiB
PHP
Raw Normal View History

2025-08-11 10:22:05 +08:00
<?php
namespace app\api\model;
use think\Db;
use think\facade\Env;
use think\Model;
require_once Env::get('root_path') . 'extend/adapay_sdk_php_v1.4.4/AdapaySdk/init.php';
// require_once Env::get('root_path') . 'extend/adapay_sdk_php_v1.4.4/AdapayDemo/config.php';
class HuiFu extends Model
{
public $app_id = "app_260e8610-8ee2-498a-8fec-66fa866bb072";
private $config_object = [
"api_key_live" => "api_live_e6e24c8d-c257-4dd7-856c-3d82f475820b",
"rsa_private_key" => "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAN+4r227xPKzSWRaaDRZmVdANi/0y6kuPs/x6r9JmOaOL8T3PRLnSLLPZiKQYIPxyxsdnvxWn4tA7R6SndfQtOHxpMcefLanwDnCGDDIYEHKk8laSN6UmqFhF8xY50uIf73EdGQ7P1RmjyeSqjtakzjHM9nIM24I+8Rxyr1i67yjAgMBAAECgYEAodXHkWmzHp3zCVUc7EGkWyloCWjbqpZ5eZNWbOmgYaeZhrISzAni3PaKu5YVO109v2++AmvnHaTp4qPM6sFfFngmbp0ztsGmomoNFP9z+ruGlHbK8iWt8PlrfrgttAoIi7PrAbz+9fkbI4mPs149ECV+RHlU+EjkWh9bwqL9/wECQQD8tUEYm4ILvy8CJ67i/sE1MV8Nwjkbxy+ayY7h0mUBgo02e5W0CZYmyq4KUyshqjsOLVXcuefH9OkP7D0TkToJAkEA4qLDx1B3R8d6dbm8UgWxDlX5Tab/aO2WXjbIM7W1lW+jI34A2wNbR11VIhzY2gqyBgP0tz0fc2pfSx1NbYDcSwJBAPPBJgRFY+BOzlomyvObxeO4Nra/xHQ94nZMuyyp09HsCqgl9xXNNW8/izbcWDtFx2b6Zdrd22utme1I8vTf3XkCQHAeochrEHecQgMXvgi99BfphIpcAaNBVtCJPYYHcSvarNSUM4wmHvQxQjq8FrPX8rZzIo+8V2Db0QTyHCn+Q/0CQDdNUVfKNrcDBaAtNKW5GBzjXdVYbb4g6vOZ8FT/G8C4kwXsQlwtl61N1ZpQhao9vml6UJEP72hMU8XLMyEFRv4=",
"rsa_public_key" => "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB"
];
public function __construct($data = [])
{
parent::__construct($data);
\AdaPay\AdaPay::init($this->config_object, "live", true);
}
public function member_create($memeberId,$nickname){
# 初始化用户对象类
$member = new \AdaPaySdk\Member();
$member_params = array(
# app_id
'app_id'=> $this->app_id,
# 用户id
'member_id'=> $memeberId,
// # 用户地址
// 'location'=> '上海市闵行区汇付',
// # 用户邮箱
// 'email'=> '123123@126.com',
// # 性别
// 'gender'=> 'MALE',
// # 用户手机号
// 'tel_no'=> '18177722312',
// # 用户昵称
'nickname'=> $nickname,
);
# 创建
$member->create($member_params);
# 对创建用户对象结果进行处理
if ($member->isError()){
return $member->result;
} else {
//成功处理
return $member->result;
}
}
public function bind_card($memberId,$accountInfo){
# 初始化结算账户对象类
$account = new \AdaPaySdk\SettleAccount();
$account_params = array(
'app_id'=> $this->app_id,
'member_id'=> $memberId,
'channel'=> 'bank_account',
'account_info'=> [
'card_id' => $accountInfo['card_id'], //银行卡id卡号--必填
'card_name' => $accountInfo['card_name'],//银行卡姓名 - 必填
'cert_id' => $accountInfo['cert_id'], //证件号 -必填
'cert_type' => '00', //证件类型 -必填
'tel_no' => $accountInfo['tel_no'], //银行卡绑定的手机号 - 必填
// 'bank_code' => '03060000', //银行编码
// 'bank_name' => '建hua', //开户银行名称
'bank_acct_type' => 2, //银行账户类型1-对公2-对私 -必填
// 'prov_code' => '0031', //---银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时,必填
// 'area_code' => '3100', //----银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时,必填
]
);
# 创建结算账户
$account->create($account_params);
# 对创建结算账户结果进行处理
if ($account->isError()){
//失败处理
return $account->result;
} else {
//成功处理
return $account->result;
}
}
public function delete_card($memberId,$settle_account_id)
{
# 初始化结算账户对象类
$account = new \AdaPaySdk\SettleAccount();
$account_params = array(
'app_id'=> $this->app_id,
'member_id'=> $memberId,
'settle_account_id'=> $settle_account_id
);
# 查询结算账户
$account->delete($account_params);
# 对查询结算账户结果进行处理
if ($account->isError()){
//失败处理
return $account->result;
} else {
//成功处理
return $account->result;
}
}
public function check_member_card($memebrId){
//根据会员id 查询结算卡 账户信息
if(empty($memebrId)){
return ['code' => '', 'msg' => '获取不到会员id', 'data' => null];
}
$result = db::name('user')->where(['uid'=>$memebrId])->field('uid,bind_bank_card_id')->find();
if(empty($result['bind_bank_card_id'])){
return ['code' => '', 'msg' => '未绑定结算卡!', 'data' => null];
}
$account = new \AdaPaySdk\SettleAccount();
$account_params = array(
'app_id'=> $this->app_id,
'member_id'=> $memebrId,
'settle_account_id'=> $result['bind_bank_card_id']
);
$data = $account->query($account_params);
$account_result = $account->result;
$code = isset($account_result[0])?$account_result[0]:-11;
if($code != 200){
return ['code' => $code, 'msg' => '银行卡绑定异常,请重新绑卡!', 'data' => null];
}
$end_data = json_decode($account_result[1],true);
$end_data = json_decode($end_data['data'],true);
return ['code' => 200, 'msg' => '操作成功!', 'data' => $end_data];
}
/**
* 获取手续费
* avl_balance 可用余额
*/
public function commission(){
# 初始化结算账户对象类
$account = new \AdaPaySdk\SettleAccount();
$account_params = array(
'app_id'=> $this->app_id,
'member_id'=> '0',
'settle_account_id'=> '',
'acct_type'=>'02'
);
# 查询账户余额
$account->balance($account_params);
$account_result = $account->result;
$code = isset($account_result[0])?$account_result[0]:-11;
if($code != 200){
return ['code' => $code, 'msg' => '获取手续费失败', 'data' => null];
}
$end_data = json_decode($account_result[1],true);
$end_data = json_decode($end_data['data'],true);
return ['code' => $code, 'msg' => '获取手续费成功', 'data' => $end_data];
}
public function commission_gd(){
# 初始化结算账户对象类
$account = new \AdaPaySdk\SettleAccount();
$account_params = array(
'app_id'=> $this->app_id,
'member_id'=> '0',
'settle_account_id'=> '',
'acct_type'=>'03'
);
# 查询账户余额
$account->balance($account_params);
$account_result = $account->result;
$code = isset($account_result[0])?$account_result[0]:-11;
if($code != 200){
return ['code' => $code, 'msg' => '获取手续费失败', 'data' => null];
}
$end_data = json_decode($account_result[1],true);
$end_data = json_decode($end_data['data'],true);
return ['code' => $code, 'msg' => '过渡账户余额获取成功', 'data' => $end_data];
}
//确认分账
public function confirm_divide_accounts($payment_id,$memberId,$confirm_amt){
# 初始化支付确认对象类
$confirm_amt = del_coin_num($confirm_amt,2);
$payment = new \AdaPaySdk\PaymentConfirm();
$div_members = [['member_id'=>$memberId,'amount'=>$confirm_amt,'fee_flag'=>"Y"]];
# 支付设置
$payment_params = array(
'payment_id' => $payment_id,
'order_no' => date("YmdHis") . rand(100000, 999999),
'confirm_amt' => $confirm_amt,
'description' => '用户'.$memberId.'进行提现',
'div_members' =>$div_members,
// 'fee_mode'=>'O' //商户手续费账户扣取手续费
// 'fee_mode'=>'O'
'fee_mode'=>'I'
);
# 创建支付确认对象
$payment->create($payment_params);
$payment_result = $payment->result;
$code = isset($payment_result[0])?$payment_result[0]:-11;
if($code != 200){
$end_data = json_decode($payment_result[1],true);
$end_data = json_decode($end_data['data'],true);
return ['code' => $code, 'msg' => '分账失败!', 'data' => $end_data];
}
// $end_data = json_decode($payment_result[1],true);
// $end_data = json_decode($end_data['data'],true);
return ['code' => 200, 'msg' => '操作成功!', 'data' => []];
}
}