From ff3ad053bb8a56b6a53d51761703ae054f1e1619 Mon Sep 17 00:00:00 2001 From: wanyongkang <937888580@qq.com> Date: Wed, 21 Oct 2020 20:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E7=8E=B0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- alipay/Alipay.php | 58 ++++++------ alipay/aop/AopCertClient.php | 5 +- app/order/controller/CashOutAdmin.php | 58 +++++++++++- app/order/controller/CashOutIndex.php | 30 ++++++- config/alicrts/alipayCertPublicKey_RSA2.crt | 19 ++++ config/alicrts/alipayRootCert.crt | 88 +++++++++++++++++++ .../appCertPublicKey_2021002102631089.crt | 24 +++++ config/config.php | 11 ++- 8 files changed, 255 insertions(+), 38 deletions(-) create mode 100644 config/alicrts/alipayCertPublicKey_RSA2.crt create mode 100644 config/alicrts/alipayRootCert.crt create mode 100644 config/alicrts/appCertPublicKey_2021002102631089.crt diff --git a/alipay/Alipay.php b/alipay/Alipay.php index 7299080..02a0bf9 100644 --- a/alipay/Alipay.php +++ b/alipay/Alipay.php @@ -2,7 +2,7 @@ /* * @Author: 万永康 * @Date: 2020-10-11 12:32:50 - * @LastEditTime: 2020-10-14 19:31:04 + * @LastEditTime: 2020-10-21 17:25:25 * @LastEditors: kangkang * @Description: In User Settings Edit * @FilePath: /phptest/alipay/Alipay.php @@ -10,7 +10,7 @@ namespace alipay; -require_once APP_PATH . 'alipay/aop/AopClient.php'; +require_once APP_PATH . 'alipay/aop/AopCertClient.php'; require_once APP_PATH . 'alipay/aop/AopCertification.php'; require_once APP_PATH . 'alipay/aop/request/AlipayTradeQueryRequest.php'; require_once APP_PATH . 'alipay/aop/request/AlipayTradePagePayRequest.php'; @@ -26,14 +26,6 @@ require_once APP_PATH . 'alipay/aop/request/AlipayFundTransUniTransferRequest.ph class Alipay { - //配置内容 - protected static $config = []; - - public function __construct() - { - self::$config = require_once APP_PATH . 'config/config.php'; - } - /** * * web 付款 @@ -50,12 +42,12 @@ class Alipay */ public static function pay($param) { + global $config; $aop = new \AopClient(); - $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; - $aop->appId = self::$config['alipay']['app_id']; - $aop->rsaPrivateKey = self::$config['alipay']['private_key']; - $aop->alipayrsaPublicKey = self::$config['alipay']['public_key']; + $aop->appId = $config['alipay']['app_id']; + $aop->rsaPrivateKey = $config['alipay']['private_key']; + $aop->alipayrsaPublicKey = $config['alipay']['public_key']; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset = 'utf-8'; @@ -77,39 +69,47 @@ class Alipay * 'out_biz_no'=>'201806300001', * 'trans_amount' => '0.01', * 'product_code' => 'TRANS_ACCOUNT_NO_PWD', - * 'payee_info' => { + * 'payee_info' => [ * 'identity' => '208812*****41234', * 'identity_type' => 'ALIPAY_LOGON_ID', * 'name' => 'peter' - * }, + * ], * 'remark' => '提现-单笔转帐' * ] - * @return {type} + * @return {type} */ - public static function transfer() + public static function transfer($param) { - $aop = new \AopClient(); - + global $config; + $aop = new \AopCertClient(); + + $appCertPath = $config['alipay']['app_crt']; + $alipayCertPath = $config['alipay']['public_crt']; + $rootCertPath = $config['alipay']['root_crt']; + $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; - $aop->appId = self::$config['alipay']['app_id']; - $aop->rsaPrivateKey = self::$config['alipay']['private_key']; - $aop->alipayrsaPublicKey = self::$config['alipay']['public_key']; + $aop->appId = $config['alipay']['app_id']; + $aop->rsaPrivateKey = $config['alipay']['private_key']; + $aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//调用getPublicKey从支付宝公钥证书中提取公钥 $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; - $aop->postCharset = 'utf-8'; - $aop->format = 'json'; + $aop->postCharset='utf-8'; + $aop->format='json'; + $aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内 + $aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号 + $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号 $request = new \AlipayFundTransUniTransferRequest(); $param = json_encode($param); $request->setBizContent($param); - $result = $aop->execute ( $request); - + $result = $aop->execute($request); + $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; - if(!empty($resultCode)&&$resultCode == 10000){ - return true; + if (!empty($resultCode) && $resultCode == 10000) { + return $result; } else { return false; } diff --git a/alipay/aop/AopCertClient.php b/alipay/aop/AopCertClient.php index 5ba2b48..8be427b 100644 --- a/alipay/aop/AopCertClient.php +++ b/alipay/aop/AopCertClient.php @@ -106,7 +106,7 @@ class AopCertClient for ($i = 0; $i < count($array) - 1; $i++) { $ssl[$i] = openssl_x509_parse($array[$i] . "-----END CERTIFICATE-----"); if(strpos($ssl[$i]['serialNumber'],'0x') === 0){ - $ssl[$i]['serialNumber'] = $this->hex2dec($ssl[$i]['serialNumber']); + $ssl[$i]['serialNumber'] = $this->hex2dec($ssl[$i]['serialNumberHex']); } if ($ssl[$i]['signatureTypeLN'] == "sha1WithRSAEncryption" || $ssl[$i]['signatureTypeLN'] == "sha256WithRSAEncryption") { if ($SN == null) { @@ -132,7 +132,8 @@ class AopCertClient for ($i = 1; $i <= $len; $i++) { $dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i)))); } - return round($dec,0); + // return round($dec,0); + return $dec; } /** diff --git a/app/order/controller/CashOutAdmin.php b/app/order/controller/CashOutAdmin.php index 37cbcff..54152a2 100644 --- a/app/order/controller/CashOutAdmin.php +++ b/app/order/controller/CashOutAdmin.php @@ -5,13 +5,16 @@ * @Author: kangkang * @Date: 2020-10-11 11:22:56 * @LastEditors: kangkang - * @LastEditTime: 2020-10-14 10:16:05 + * @LastEditTime: 2020-10-21 20:01:22 */ namespace app\order\controller; use app\order\model\CashOut as CashMoedl; +use app\order\model\User as UserModel; +use app\order\model\UserScore as ScoreModel; use fastphp\base\Controller; +use alipay\Alipay; class CashOutAdmin extends Controller { @@ -25,6 +28,7 @@ class CashOutAdmin extends Controller foreach ($list as &$v) { $v['status'] = $status[$v['status']]; $v['alipay_account'] = substr($v['alipay_account'], 0, 3) . '***' . substr($v['alipay_account'], -3); + $v['username'] = substr($v['username'], 0, 3) . '***' . substr($v['username'], -3); } $count = $cash->getCount(); $data = [ @@ -49,6 +53,7 @@ class CashOutAdmin extends Controller foreach ($list as &$v) { $v['status'] = $status[$v['status']]; $v['alipay_account'] = substr($v['alipay_account'], 0, 3) . '***' . substr($v['alipay_account'], -3); + $v['username'] = substr($v['username'], 0, 3) . '***' . substr($v['username'], -3); } $data = [ 'Code' => 10000, @@ -69,14 +74,63 @@ class CashOutAdmin extends Controller unset($data['update_time']); unset($data['create_time']); unset($data['id']); + unset($data['username']); $user = $this->userinfo; + $cash = new CashMoedl; + $cash_data = $cash->getOne(['id' => $id]); + if($data['status'] == '1'){ + + + + $param = [ + 'out_biz_no'=>'2020'.time().rand(10000,99999), + 'trans_amount' => $cash_data['money'], + 'product_code' => 'TRANS_ACCOUNT_NO_PWD', + 'biz_scene' => 'DIRECT_TRANSFER', + 'payee_info' => [ + 'identity' => $cash_data['alipay_account'], + 'identity_type' => 'ALIPAY_LOGON_ID', + 'name' => $cash_data['real_name'] + ], + 'remark' => '聚IP提现-会员'.$cash_data['username'].'-'.$cash_data['money'].'元' + ]; + $result = Alipay::transfer($param); + if ($result){ + $data['cash_no'] = $result->alipay_fund_trans_uni_transfer_response->out_biz_no; + $data['alipay_no'] = $result->alipay_fund_trans_uni_transfer_response->order_id; + $data['status'] = 1; + } else { + die; + } + } else if($data['status'] == '2'){ + $user_model = new UserModel; + $user_rest = $user_model->getOne(['id'=>$data['userid']],'RestAmount')['RestAmount']; + $rest = $user_rest + $cash_data['money']; + $user_model->where(['id'=>$data['userid']])->update(['RestAmount'=>$rest]); + $score = new ScoreModel; + $score_data = [ + 'UserId' => $data['userid'], + 'ScoreType' => 9, + 'ScoreTypeName' => '提现被拒退还', + 'ScoreValue' => $cash_data['money'], + 'UserName' => $cash_data['username'], + 'OperateUserName' => $user['LoginName'], + 'RestAmount1' => $user_rest, + 'RestAmount2' => $rest, + 'CreateTime' => date('Y-m-d H:i:s',time()), + 'UpdateTime' => date('Y-m-d H:i:s',time()), + 'TenantId' => 0, + 'DeleteTag' => 0, + ]; + $score->add($score_data); + } $data['op_user'] = $user['LoginName']; $status = ['0', '1', '2']; if (!in_array($data['status'], $status)) { unset($data['status']); } - $cash = new CashMoedl; + $up_status = $cash->where(['id' => $id])->update($data); $return_info = [ 'Code' => 10000, diff --git a/app/order/controller/CashOutIndex.php b/app/order/controller/CashOutIndex.php index 86545e1..25e12b1 100644 --- a/app/order/controller/CashOutIndex.php +++ b/app/order/controller/CashOutIndex.php @@ -2,7 +2,7 @@ /* * @Author: your name * @Date: 2020-10-10 13:58:14 - * @LastEditTime: 2020-10-13 19:48:51 + * @LastEditTime: 2020-10-21 19:57:25 * @LastEditors: kangkang * @Description: In User Settings Edit * @FilePath: /phptest/app/order/controller/Index.php @@ -11,6 +11,8 @@ namespace app\order\controller; use app\order\model\CashOut as CashMoedl; +use app\order\model\User as UserModel; +use app\order\model\UserScore as ScoreModel; use fastphp\base\Controller; class CashOutIndex extends Controller @@ -25,9 +27,35 @@ class CashOutIndex extends Controller $data['money'] = $post['cash_out_money']; $data['apply_reason'] = $post['reason']; $data['alipay_account'] = $post['alipay_account']; + $data['real_name'] = $post['real_name']; $cash = new CashMoedl; $status = $cash->add($data); if ($status) { + $user = new UserModel; + $user_rest = $user->getOne(['id'=>$data['userid']],'RestAmount')['RestAmount']; + $rest = $user_rest - $post['cash_out_money']; + if ($rest < 0){ + echo json_encode(['Code'=>-10000,]); + die; + } else { + $score = new ScoreModel; + $score_data = [ + 'UserId' => $data['userid'], + 'ScoreType' => 8, + 'ScoreTypeName' => '用户提现扣除', + 'ScoreValue' => $post['cash_out_money'], + 'UserName' => $data['username'], + 'OperateUserName' => $data['username'], + 'RestAmount1' => $user_rest, + 'RestAmount2' => $rest, + 'CreateTime' => date('Y-m-d H:i:s',time()), + 'UpdateTime' => date('Y-m-d H:i:s',time()), + 'TenantId' => 0, + 'DeleteTag' => 0, + ]; + $score->add($score_data); + $user->where(['id'=>$data['userid']])->update(['RestAmount'=>$rest]); + } echo json_encode(['Code'=>10000,]); } else { echo json_encode(['Code'=>-10000,]); diff --git a/config/alicrts/alipayCertPublicKey_RSA2.crt b/config/alicrts/alipayCertPublicKey_RSA2.crt new file mode 100644 index 0000000..950b433 --- /dev/null +++ b/config/alicrts/alipayCertPublicKey_RSA2.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDsjCCApqgAwIBAgIQICAQIUG1xdzjxaNQ54yAqDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE +BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs +YXNzIDIgUjEwHhcNMjAxMDIxMDMyODMyWhcNMjIxMDIxMDMyODMyWjCBkjELMAkGA1UEBhMCQ04x +LTArBgNVBAoMJOays+WNl+WNjui/nue9kee7nOenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwG +QWxpcGF5MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWP +uC0yMDg4NDMxNjAzMzgzOTU1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAksDNAevi +es+/JyIvTagC6IAHTIDdCd2uNbjDn2ez7TV2A3LAH9DEk53vwDX+mCPE+v5KFkeAXsWJ+Hcvz3cb +TbQj2hqStiYKZdu8DjK2YlilPBWm8SoKR64WtMxT91PH0w5gRT7++6HH7H9p+ctlSyV4VKbVfyh0 +lnv9BsnNAiIoSDSgf4cUXQy5WP8OMecUeF39vYctzd6KOJN/TlD7zeHfECD/+cGO68t2rANiQLew +so7O0LwIfGqsAmbzhAn8pQ82JjVIYfVGOVo/dtxlG67G1QzaVgrAEvM8kovflltm+xPElnwjixbl +sD4v9OHqhPohCfIdSb4yJpxlxnsCOQIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcN +AQELBQADggEBABk2rBhxNvugcp2FZSxDNKLsJ0uX+8InI0coTh9z2cMEbbdJJyLh0QZvu97hRdcE +Gg9OS2xO+1G5542haZqbLMOrhB8+1GH+8la9FpGYnhxcRDsAsudCohKmZYwtRJQJaC8YzTSlezpq +BrTRKz4kdbWbf9CCULqXm4m+e0u1LhCHAjFSi+c1MVpyqBfgBvOLVTBfHdx9fnrMw9QF1ZBbKeHW +ZPKWhAANoJRrR8oNs5kzjtXOGXoWdGWXdey+nIm9XD54Ok/+BRvH1GvNYUelXjHR2FBYkJ8o4s86 +L0+UwnAf9MNj5CaAV3JAUvVXMvqTjuRsAfGBYakWgYTIyqO/7eo= +-----END CERTIFICATE----- diff --git a/config/alicrts/alipayRootCert.crt b/config/alicrts/alipayRootCert.crt new file mode 100644 index 0000000..d370e5b --- /dev/null +++ b/config/alicrts/alipayRootCert.crt @@ -0,0 +1,88 @@ +-----BEGIN CERTIFICATE----- +MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG +EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw +MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO +UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE +MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT +V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti +W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ +MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b +53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI +pDoiVhsLwg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE +BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj +YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0 +MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV +BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j +aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk +rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2 +xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp +dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6 +vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl +YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1 +Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H +DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98 +SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG +PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe +9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC +AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90 +tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy +nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf +tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq +JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3 +IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW +05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41 +T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI +kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop +PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N +1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y +jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02 +77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi +kT9qhqn+lw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG +EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0 +WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE +CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp +YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU +WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt +rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ +4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2 +zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg +wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH +Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF +BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM +E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg +MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq +MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp +bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv +b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV +nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5 +4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg +wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw +WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN +z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g +KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA +uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF +MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp +emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3 +U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I +UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn +DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU +1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX +Yf4Zr0fJsGuv +-----END CERTIFICATE----- \ No newline at end of file diff --git a/config/alicrts/appCertPublicKey_2021002102631089.crt b/config/alicrts/appCertPublicKey_2021002102631089.crt new file mode 100644 index 0000000..5a42bbc --- /dev/null +++ b/config/alicrts/appCertPublicKey_2021002102631089.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEsTCCA5mgAwIBAgIQICAQIQPPwbLUrdrbAXOmNzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE +BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs +YXNzIDEgUjEwHhcNMjAxMDIxMDMyODMxWhcNMjIxMDIxMDMyODMxWjB5MQswCQYDVQQGEwJDTjEt +MCsGA1UECgwk5rKz5Y2X5Y2O6L+e572R57uc56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZB +bGlwYXkxKjAoBgNVBAMMITIwODg0MzE2MDMzODM5NTUtMjAyMTAwMjEwMjYzMTA4OTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALGEE8eH41uYJJcAsjgvOKkRjyVyfoL0kbB4I9xxMY7N +QWYgFmM8a9lxmEvCB14fIomSqI6fSl3c61BXE7vTqnvF6/nz7D26nXtsZRyv/FF4DFo6TZbeGKo1 +cbKnJOU4Gc6z3C+v7CwKwehLitKiAyYezLezi19e2s//dtWStNwaqV3lnKEecLnwXRSyXsbyUB/V +ZBqs0ASFWa3qTQzY3+IG+RDIaWfBJACCXqPnKU68NFTrTr7KfdD5b0/cAcP82iY16LTjMSw+/EeG +QTBx8V7fuRvAOZum4aFmHAE7RMKBlJVrmZrltwJMg8slUqUz1fTln2IgFTVL3l05A67tQJ0CAwEA +AaOCASkwggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBQeBxzx +/qpaGW+ve/+aNQbF1Xz91TBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYcaHR0 +cDovL2NhLmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAkoCKg +IIYeaHR0cDovL2NhLmFsaXBheS5jb20vY3JsNDYuY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggrBgEF +BQcwAoYcaHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDovL2Nh +LmFsaXBheS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAGU9VEfOOIDu//RCZrexyg73f1Bw +KB8KwdrMa4jafnN47aA6nojZoS1ULLF6B8r3+NMtavPMazx8UrFZ88FiAIqJ1t1JUm+3YdBWPi84 +NbYDOIOiItvcFf9nu58JKrn49a+aS6+IAPNNMvEW4knonqxjPE8ebHTHUuB4E9RNqKaGnvU2osna +sxHjP23li2RfMmkox5T+WQFck2cr1tNeWmCQn0ocAx+VthnbwFL5PQh/nMQJBL2AB8MH6lDeATS5 +ayFCCRXCXAz5naPE9/K4GrHBSNRoQcFK9brhijxqACS1FSF2aRmdyAoO4Nlnw+cla4JhQfGCCCMP +Ng8J+I+3imU= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/config/config.php b/config/config.php index bf24be2..b43f5e7 100644 --- a/config/config.php +++ b/config/config.php @@ -5,7 +5,7 @@ * @Author: kangkang * @Date: 2020-09-30 17:32:46 * @LastEditors: kangkang - * @LastEditTime: 2020-10-16 17:44:31 + * @LastEditTime: 2020-10-21 20:23:37 */ return [ @@ -39,8 +39,11 @@ return [ ], //支付宝 'alipay' => [ - 'app_id' => '2021001102636643', - 'public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAksDNAevies+/JyIvTagC6IAHTIDdCd2uNbjDn2ez7TV2A3LAH9DEk53vwDX+mCPE+v5KFkeAXsWJ+Hcvz3cbTbQj2hqStiYKZdu8DjK2YlilPBWm8SoKR64WtMxT91PH0w5gRT7++6HH7H9p+ctlSyV4VKbVfyh0lnv9BsnNAiIoSDSgf4cUXQy5WP8OMecUeF39vYctzd6KOJN/TlD7zeHfECD/+cGO68t2rANiQLewso7O0LwIfGqsAmbzhAn8pQ82JjVIYfVGOVo/dtxlG67G1QzaVgrAEvM8kovflltm+xPElnwjixblsD4v9OHqhPohCfIdSb4yJpxlxnsCOQIDAQAB', - 'private_key' => 'MIIEpQIBAAKCAQEA+LXfPGKZxbK67My3GCCm2hRrqbXuIcavDqfga5CRM0GoI8RbeT7fb/GuokDYg9nbjv77mAzf4MjO5g8wU5C33RDQLMArTrl6NTexdhTrM/RWo+8OhLE2UWeMHs6vAhynwOI9y53GBYbYJnxsj0LNHU0R5st+c5HKWzoJzuJ0/bUygY1N5HiEvVfGINydDTUx17dRZDveV2mg8K4ZZSjzn8VFJVaYP1jH8ju20LgVfJZzzXNYjGICBYjH57hmX9E8eyCFfKFxMlawfsvVIiD4EYyDKI/k8/ZOdDxuDMwl0egrQM9twRQD1wVFG4j4sG+Vrm3pYQuzl14fUq4mGLlpTwIDAQABAoIBAQCboaNptAGplqgl2gyQyo3eVXzxm+jBtgSBVUe3x6U0v9cpWowrGM7UzBWNbqqOB1u+5Ywmn5fQn5fomoSRJjQH36eE+VOgVaxFdO5Vh82Om01EFCmvmvz0f6lM9eTJm4jVyD0HF1l8x96mZqHAG/siZMHY/GnKg+Zuo6jTjx3KS8bdIWg6Y5O63NcNTFvUUPxLXXJptRIo8IMu347+3DiRkZvMP2JH98darOPdSFZgHgAUL69vIkSRup27i2txqooXhogHzBY6D4Sy4gSHQCX3eaIzioByg/IlT+hqlbyIpJxDN9pW5r9gzb5wsMGVRt3FTr0XtPNuuXPr3peor/zBAoGBAPzA5t20Fc4nGHXIzafaOKjNjaZmvazBrSRjuW7XZR2eT9wYLJBBSVxX1sHR3OWK+f4pPM1OOYjCTsM58KXH0DCmVrfQ1LrvT3cRr8QL1TnHswDXo+T7/QyBKDxKJ6eaar9FYlkRIMsme4MySwPEkXoX0WS90e2FqBnkpDYc7cJRAoGBAPvnrQJcof9rlVWZZRVH4YCCqtL78rPJ1LstkUnRuXPDsgcfMoFMY6WRJ3Qm1/flmTZXsgh1t5adQmLs3v4mOwbmOcHLyO3OPCFHNsNJYRjeJWfqfhWJNNffA/p2VbHZ8mxex3LBWNh8Hr4pt+THQm3DDdCXk76HyU5eurMZkumfAoGBAL07Bx2xeCnR52Q3pJEotgbbblPI0/UFQ8Xcy7YKmW+lWRDlIGgYGP6D3QtbPdC1ThlVcmobSMP1BdbwCBV2FY522rHgLYSPKqVwnnFekpMhygi1acVES94SzLbmpe27lHQDVHBufGjcNNiyzKrTfj80mdacrxDvYj2Qisjgu7khAoGAPJ584NOf3FJsZmP6kktw9bb8GresqR1Jxx1pGCWTBkuynMoiIkFavW4X23i5ghtLamtiGW0Sl/kSD7JG20wh6kAe6Ab9PFTj3XJAuHABILXctIwWeWJCSCyPzYcKijkTgIayYmgq1DXSRBrP+QsGblmBCpBfantMs0JSlWTzGKsCgYEA8jZX0RR+fLqSlptVrg2gmL/PsUG1OevcU1m9SLHcRW+FfMaV3AR5f70C0p/0MJLm9sTQrezup8SGeE+FS/7SG/0QFJ15Hq3nfmX3dgxbTZF8CRJxq/qdTD3/WoqMt1l7+/z4peC484HH6k51YmPVkOdrg72YExsbG0uePse3sqA=' + 'app_id' => '2021002102631089', + 'public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsYQTx4fjW5gklwCyOC84qRGPJXJ+gvSRsHgj3HExjs1BZiAWYzxr2XGYS8IHXh8iiZKojp9KXdzrUFcTu9Oqe8Xr+fPsPbqde2xlHK/8UXgMWjpNlt4YqjVxsqck5TgZzrPcL6/sLArB6EuK0qIDJh7Mt7OLX17az/921ZK03BqpXeWcoR5wufBdFLJexvJQH9VkGqzQBIVZrepNDNjf4gb5EMhpZ8EkAIJeo+cpTrw0VOtOvsp90PlvT9wBw/zaJjXotOMxLD78R4ZBMHHxXt+5G8A5m6bhoWYcATtEwoGUlWuZmuW3AkyDyyVSpTPV9OWfYiAVNUveXTkDru1AnQIDAQAB', + 'private_key' => 'MIIEowIBAAKCAQEAsYQTx4fjW5gklwCyOC84qRGPJXJ+gvSRsHgj3HExjs1BZiAWYzxr2XGYS8IHXh8iiZKojp9KXdzrUFcTu9Oqe8Xr+fPsPbqde2xlHK/8UXgMWjpNlt4YqjVxsqck5TgZzrPcL6/sLArB6EuK0qIDJh7Mt7OLX17az/921ZK03BqpXeWcoR5wufBdFLJexvJQH9VkGqzQBIVZrepNDNjf4gb5EMhpZ8EkAIJeo+cpTrw0VOtOvsp90PlvT9wBw/zaJjXotOMxLD78R4ZBMHHxXt+5G8A5m6bhoWYcATtEwoGUlWuZmuW3AkyDyyVSpTPV9OWfYiAVNUveXTkDru1AnQIDAQABAoIBADd/TFPAJxN2sFHJNO6dzMAGrlMNxYGZhoa+OK/tb4nun7iW5Yjm1ezoN63PnlANudV61VmpcS2BKMw4PQImvZDuosTFPqFZ22w/yii62E58EpiOy70T+HAWP1KUMNO8w0y9LGR4QoTOZCsEmwUZA5UCYgw4hKUvWYdXncZNlF+PLNNvYIE4oJ8ixwJaBrO0agZszK8Kv8VW86++PGGw7YkP4e27Z7Dk4AwmdJAOrfaf7nHSiUPNB5S2spxsxJC7iU67/YS9amW3GBLLrQ/UKnjEmWlymPAx28Q9iguAQvyEoHUo5Dy4tZVldwWWOB1U9yj22zKpKeNwU135VSa9Hl0CgYEA4Lnth7WlWeTH7su2L4dIBsmTQeqkWl5nsNdfJl7q6Ooi5yvDahLy8ys8rWawkuTvFyGzZHYGnK0zEzUiMGTDxOU8N3E/D+CyarFhAJ7yycYlbOD5ADWy+6Ipq1ya4wIAdAB6dHHXw9yLfvACJTZtbUYSJvHgKIb3wNqcL/Oznm8CgYEAyjg9JvEhoSzAf+nJ+x/9enE/qISgweoNTctcqE+UY4VPn2y7D+UvVhdmPn7hn+fCevl03/JzDDYmmdaWq8HadiubJLEebLKlzDmAefY5fnjEEPR/GeCQWutdsmOAU8xhB3hzO6fDEP7bo7kZb3v7ES9LXaGcah5KCN2Tjfk+l7MCgYEAh+wNHhMg8tEsmGOASxkA2JIdTjY0uC/3eX+anmO0o7HR8I6IwGS7q5aQObUtwXtUnWIV1gKJF0Su6sQtbKXVvwaDuGj3oovefifRKwX4hVAinMsp8BWKryYzG+GEER/J1F/hsQKWZXHEsb9LHOThpMFIA2Qyl3Ci83OGGn7FOmMCgYAoRRjQd3aF/T58epcxfkZhKspNidPlqfFqS5QxJF/djb+0dNevq6lIkLJYwbW2vVV6XdELg+GrTeFUA2rP23Pg0oA7x1XSuaTQzaarIwCCEhShd78T7SdyI6ruCmiUx3+PGEqCV7891DLzILpS/DKcUnnEtJlMfKmrqExpGnh/hwKBgH/iqwvI/gGIqxIpAjl8uSBKCubRIzK4L1HX/jN0uqNHqDEmPenClJekhsaITSgVA/tqfqi6b1XZaDtg4beYX/ZfSWNi1afdqCf1i3ccfNUE6sagoSRBkWKNIqF6U3P505e4N7igMmYBk4ufemJedOAw/HnCiSNOY1yzElmn5bnc', + 'app_crt' => APP_PATH.'config/alicrts/appCertPublicKey_2021002102631089.crt', + 'root_crt' => APP_PATH.'config/alicrts/alipayRootCert.crt', + 'public_crt' => APP_PATH.'config/alicrts/alipayCertPublicKey_RSA2.crt', ] ]; \ No newline at end of file