Files
mier-php/application/api/model/HuiFu.php
2025-08-11 10:22:05 +08:00

236 lines
9.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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' => []];
}
}