236 lines
9.4 KiB
PHP
236 lines
9.4 KiB
PHP
|
|
<?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' => []];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|