其余文件
This commit is contained in:
126
app/common/server/YansongdaAliPayTransferServer.php
Normal file
126
app/common/server/YansongdaAliPayTransferServer.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeshop开源商城系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee
|
||||
// | github下载:https://github.com/likeshop-github
|
||||
// | 访问官网:https://www.likeshop.cn
|
||||
// | 访问社区:https://home.likeshop.cn
|
||||
// | 访问手册:http://doc.likeshop.cn
|
||||
// | 微信公众号:likeshop技术社区
|
||||
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
|
||||
// | likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
|
||||
// | 禁止对系统程序代码以任何目的,任何形式的再发布
|
||||
// | likeshop团队版权所有并拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeshop.cn.team
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\common\server;
|
||||
|
||||
use app\common\model\Pay;
|
||||
use think\facade\Log;
|
||||
use Yansongda\Pay\Exceptions\GatewayException;
|
||||
use Yansongda\Pay\Exceptions\InvalidConfigException;
|
||||
use Yansongda\Pay\Exceptions\InvalidGatewayException;
|
||||
use Yansongda\Pay\Exceptions\InvalidSignException;
|
||||
|
||||
class YansongdaAliPayTransferServer
|
||||
{
|
||||
|
||||
|
||||
function _cache_file($key,$content, $ext = 'crt') : string
|
||||
{
|
||||
$path = runtime_path() . 'admin/alipay';
|
||||
|
||||
if (! file_exists($path)) {
|
||||
mkdir($path, 0775, true);
|
||||
}
|
||||
|
||||
$file = $path . '/' . $key . '.' . md5($content) . ".{$ext}";
|
||||
|
||||
if (! file_exists($file)) {
|
||||
file_put_contents($file, $content);
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
function config()
|
||||
{
|
||||
$result = (new Pay())->where([ 'code' => 'alipay' ])->find();
|
||||
|
||||
return [
|
||||
|
||||
// 支付宝异步通知地址
|
||||
// 'notify_url' => '',
|
||||
|
||||
// 支付成功后同步通知地址
|
||||
// 'return_url' => '',
|
||||
|
||||
// 支付宝公钥地址 新版已使用证书方式
|
||||
// 'ali_public_key' => "",
|
||||
|
||||
// 支付宝分配的 APPID
|
||||
'app_id' => $result['config']['app_id'] ?? '',
|
||||
|
||||
'sign_type' => 'RSA2',
|
||||
|
||||
//商户私钥地址(默认沙箱通用私钥,如需调试线上环境请换成线上的私钥:https://docs.open.alipay.com/291/106103/)
|
||||
'private_key' => $result['config']['private_key'] ?? '',
|
||||
|
||||
// 应用公钥证书路径
|
||||
'app_cert_public_key' => $this->_cache_file('app_cert', $result['config']['app_cert'] ?? ''),
|
||||
|
||||
// 支付宝根证书路径
|
||||
'alipay_root_cert' => $this->_cache_file('ali_root_cert', $result['config']['ali_root_cert'] ?? ''),
|
||||
|
||||
// 公钥证书
|
||||
'ali_public_key' => $this->_cache_file('ali_public_cert', $result['config']['ali_public_cert'] ?? ''),
|
||||
|
||||
// 日志
|
||||
'log' => [
|
||||
'file' => runtime_path() . 'log/yansongda/log',
|
||||
],
|
||||
|
||||
// optional,设置此参数,将进入沙箱模式
|
||||
// 'mode' => 'dev',
|
||||
];
|
||||
}
|
||||
|
||||
function shopWithdrawTransfer($ShopWithdrawal)
|
||||
{
|
||||
try {
|
||||
if ($ShopWithdrawal['left_amount'] > 100000000) {
|
||||
return '支付宝在线转账最高金额:100000000';
|
||||
}
|
||||
|
||||
if ($ShopWithdrawal['left_amount'] < 0.1) {
|
||||
return '支付宝在线转账最低金额:0.1';
|
||||
}
|
||||
|
||||
$order = [
|
||||
'out_biz_no' => $ShopWithdrawal['sn'],
|
||||
'product_code' => 'TRANS_ACCOUNT_NO_PWD',
|
||||
'trans_amount' => $ShopWithdrawal['left_amount'],
|
||||
'biz_scene' => 'DIRECT_TRANSFER',
|
||||
'remark' => '提现到账',
|
||||
'payee_info' => [
|
||||
// 提现人支付宝
|
||||
'identity' => $ShopWithdrawal['alipay']['account'] ?? '',
|
||||
'identity_type' => 'ALIPAY_LOGON_ID',
|
||||
// 提现人真实姓名
|
||||
'name' => $ShopWithdrawal['alipay']['username'] ?? '',
|
||||
]
|
||||
];
|
||||
|
||||
$result = \Yansongda\Pay\Pay::alipay($this->config())->transfer($order);
|
||||
|
||||
return (isset($result['code']) && $result['code'] == 10000) ? : ($result['sub_msg'] ?? '支付宝提现失败');
|
||||
} catch (GatewayException|InvalidSignException|InvalidConfigException|InvalidGatewayException $e) {
|
||||
return $e->raw['alipay_fund_trans_uni_transfer_response']['sub_msg'] ?? $e->getMessage();
|
||||
} catch (\Throwable $e) {
|
||||
return '支付宝提现错误';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user