gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = env('ALIPAY_APPID'); $aop->rsaPrivateKey = env('ALIPAY_APP_SECRET'); $aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath); $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->isCheckAlipayPublicCert = true; $aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号 // $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号 $aop->alipayRootCertSN = '687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6'; $this->aop = $aop; // dd($aop); // $aop = new AopCertClient(); // $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; // $aop->appId = '2021001162609611'; // $aop->rsaPrivateKey = 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEdMfDKTkcAO2nhtpppfeDbMX9CCM+WGUqsvksXcfk38nZsfgY9vSSfVpAiHs7s15aw/dDwQxfEoKdZJkOc8/aAiHTL2b2nbKrXom091NYqLCMtbW8RlaptYwkX2AqrLlFgt8sSzvAbT5+QhWDCMtXRMkR4w6x2oTxwWRTNOKQLqYabz/1sCYxUnmd2eIv3j/nTyzbYnVKnYf3sXDUSaJQByPAwq+XlskrBolbqvPSbf+Qk/Bso7yBQxkF0RZALDv0skOX289gov6Lu7a92c3yMFnBqfsNV3DxyPeuruaiXSuVfgDzylZooIXAL2QTK23Jprm0xBmjhkqThJ+FB9h5AgMBAAECggEAUWlZsslukZi8eaB4NEFPPVco5doPl21LWRBB+JP3neQys3wgim+XaUZkp497dvlLQCx8mQdZrEG7SDQhovFpyoxO7/eNqHzK6Wuk5jax4qdkREgXWI4/C/ZLGbwJZpFdGq1SsG3ZXu+GXqINiMlp+cyMbVMKoCQ4XENKf53ct1McPE3WnxgN7tD9b4quuACSNNxQowT+B2UZ4vPXwO0bifiJpZUEDXcJ0OA/TuY4ryZtoiVQLrQ2sgtRbeBLFABCdIsT6rdAJ6/KRklPcUe3SPKHhsUKjkgTUlwekBDNaBEj0qX7XmKYgr2UnqtCW8FJXwZTs+wVNyTgCAPHMzWSEQKBgQDoagXxpw91tounHLa9ssCupEMowxfVjE6Z4LAgJX1wFCasuY5hPsDP6TQB3iyGx/q6i/mR0RTqQHQgRG8mXIa43xMOqb2uC41teKH0B8nDsSF7iOlqVae4Z2QmEW0ISSSW6gImwJdq7elFxSdQ1EcgkSToxT7ujreiaMwrvHortQKBgQCR5ekGBzOx5CygiQelylgKrZ3WH96TieUXsREl8cvyBndHqTK08d2mLjP35xwwAgw7TAf6bzhuMV1pRpRv3xmtvIq4dJvO4n9gke/jCyDIZu/qGrNTNVcnuYj38tevyJ7br5jR52e6JZ+Xz1u7A6MBhSeSZbmKuLe05Bg9IkEcNQKBgQCIqfeOzqanmEzsWlUWnSryRsL7ECVOvC9oCphmfsURB7hqLr6LbkQgvceIJaXXJ3bHBRIe7Ww4BuiCJNubGiNaSEpDgAp6cm6aZaoN/hpliR3gL3TZwz5Zj+py/CI6EhCC8V2MfglLplRaY4En5XthqhejDIFh8+gFh0wvl6fbVQKBgGG9I95l9Lu3oC3rnrPyWgjNRm+r6e/s8QxuEo7Y7Ue2DTJ0pwORBGvPiAELUlbXCFqxFKcw2xz29R0Rq19Glm1NYaEwfTCbi7mmCo6PZebbDt5GBNw5X6m9IYT5qoSYYdPKTxZPb63EhqWsxEcEqK7cBSaN/z5vgKIuLA7IY9YBAoGAOXCCK6bexRUF5LST3lqBOIBwB+/51yW0D17lJYtR5gLVsyEe6GWl9DPbeB1BZujUNQ+01wc59DUYQyYiekYb7399mdRyMJ/0bEADaPU3AlGAQQpoQovmz+aKdxKHnMsm7Zdy3I2v6oDcfwDYpTs+vInLY51iyj1+Vh+3+IIQ21M='; // $aop->alipayrsaPublickey = $aop->getPublicKey(app_path().'/library/alipay/alipayCertPublicKey.crt'); // $aop->isCheckAlipayPublicCert = true; // $aop->appCertSN = $aop->getCertSN(app_path().'/library/alipay/appCertPublicKey_2021001162609611.crt'); //// $aop->alipayRootCertSN = $aop->getRootCertSN(app_path().'/library/alipay/alipayRootCert.crt'); // $aop->alipayRootCertSN = '687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6'; // $aop->apiVersion = '1.0'; // $aop->signType = 'RSA2'; // $aop->postCharset='UTF-8'; // $aop->format='json'; // // $this->aop = $aop; } public function transfer($data){ $aop = $this->aop; $request = new AlipayFundTransUniTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"".$data['out_biz_no']."\"," . "\"trans_amount\":".$data['amount']."," . "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," . "\"biz_scene\":\"DIRECT_TRANSFER\"," . "\"mutiple_currency_detail\":{" . "\"payment_amount\":\"100.00\"," . "\"payment_currency\":\"CNY\"," . "\"trans_currency\":\"CNY\"," . "\"settlement_amount\":\"10.00\"," . "\"settlement_currency\":\"CNY\"," . "\"ext_info\":\"key=value\"" . " }," . "\"order_title\":\"直播提现\"," . // "\"original_order_id\":\"20190620110075000006640000063056\"," . // "\"payer_info\":{" . // "\"identity\":\"info@ufutx.com\"," . // "\"identity_type\":\"ALIPAY_LOGIN_ID\"," . // "\"name\":\"福恋智能\"," . // " }," . "\"payee_info\":{" . "\"identity\":\"".$data['payee_account']."\"," . "\"identity_type\":\"ALIPAY_LOGON_ID\"," . "\"name\":\"".$data['payee_real_name']."\"" . " }," . "\"remark\":\"直播余额提现到支付宝\"," . "\"business_params\":\"{\\\"sub_biz_scene\\\":\\\"REDPACKET\\\"}\"," . "\"passback_params\":\"{\\\"merchantBizType\\\":\\\"peerPay\\\"}\"" . " }"); $result = $aop->execute( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; $log = AssetLog::where('out_biz_no', $data['out_biz_no'])->first(); if(!empty($resultCode)&&$resultCode == 10000){ $log->cash_status = 2; $log->save(); //模板消息-提现失败通知 $log = AssetLog::select('num', 'viewer_id', 'account')->where('out_biz_no', $data['out_biz_no'])->first(); $viewer = Viewer::select('openid', 'alipay_account', 'nickname')->where('id', $log->viewer_id)->first(); $account_type = $log->account == 2 ? '支付宝账户'.$viewer->alipay_account : '微信'.$viewer->nickname; $data['touser'] = $viewer->openid; $data['template_id'] = 'aV4ic7jr5bOlf55CgR0jmMsFYyhdRAiVmqqXEjnUqQU'; $data['url'] = env('APP_URL').'/h5/#/myWallet'; $data['data'] = [ 'first' => '您好,您的提现已到账', 'keyword1' => $log->num, 'keyword2' => date('Y-m-d H:i:s'), 'keyword3' => '提现到'.$account_type, 'reamrk' => '感谢您的使用', ]; SendTemplateMsg::dispatch($data)->onQueue('template_message'); return true; } else { $reason = ''; switch ($result->$responseNode->sub_code) { case 'PAYEE_NOT_EXIST': $reason = '支付宝账户或者真实姓名有误'; break; case 'INVALID_PARAMETER': $reason = '缺少支付宝或者真实姓名'; break; default : $reason = '系统错误'; } $log->reason = $reason; $log->score = $log->score + $log->num; $log->cash_status = 3; $log->save(); $asset = Asset::where('viewer_id', $log->viewer_id)->first(); $asset->increment('cash', $log->num); //模板消息-提现失败通知 $log = AssetLog::select('num', 'viewer_id', 'account')->where('out_biz_no', $data['out_biz_no'])->first(); $viewer = Viewer::select('openid', 'alipay_account', 'nickname')->where('id', $log->viewer_id)->first(); $account_type = $log->account == 2 ? '支付宝账户'.$viewer->alipay_account : '微信'.$viewer->nickname; $data['touser'] = $viewer->openid; $data['template_id'] = 'AqwVt0liVmQfzfnX3ZGvmVOdOh62nkCbhlOUI0NVQGs'; $data['url'] = env('APP_URL').'/h5/#/myWallet'; $data['data'] = [ 'first' => '您好,您的提现已到账', 'keyword1' => $log->num, 'keyword2' => '提现到'.$account_type, 'keyword3' => $reason, 'reamrk' => '请稍后重试', ]; SendTemplateMsg::dispatch($data)->onQueue('template_message'); return false; } } public function transferAccount($data) { try { $aop = $this->aop; $request = new AlipayFundTransUniTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"".$data['out_biz_no']."\"," . "\"trans_amount\":".$data['amount']."," . "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," . "\"biz_scene\":\"DIRECT_TRANSFER\"," . "\"mutiple_currency_detail\":{" . "\"payment_amount\":\"100.00\"," . "\"payment_currency\":\"CNY\"," . "\"trans_currency\":\"CNY\"," . "\"settlement_amount\":\"10.00\"," . "\"settlement_currency\":\"CNY\"," . "\"ext_info\":\"key=value\"" . " }," . "\"order_title\":\"直播提现\"," . // "\"original_order_id\":\"20190620110075000006640000063056\"," . // "\"payer_info\":{" . // "\"identity\":\"info@ufutx.com\"," . // "\"identity_type\":\"ALIPAY_LOGIN_ID\"," . // "\"name\":\"福恋智能\"," . // " }," . "\"payee_info\":{" . "\"identity\":\"".$data['payee_account']."\"," . "\"identity_type\":\"ALIPAY_LOGON_ID\"," . "\"name\":\"".$data['payee_real_name']."\"" . " }," . "\"remark\":\"".$data['remark']."\"," . "\"business_params\":\"{\\\"sub_biz_scene\\\":\\\"REDPACKET\\\"}\"," . "\"passback_params\":\"{\\\"merchantBizType\\\":\\\"peerPay\\\"}\"" . " }"); if (env('APP_ENV') != 'production') { return true; } $result = $aop->execute( $request); $result = $result->alipay_fund_trans_uni_transfer_response; if(!empty($result)&&$result->code == 10000){ return true; }else{ return ['code'=>1, 'msg'=>$result->sub_msg]; } } catch (\Exception $e) { $this->getError($e); return false; } } //查询订单 public function info($data){ $aop = $this->aop; $request = new AlipayFundTransCommonQueryRequest (); $request->setBizContent("{" . "\"product_code\":\"STD_RED_PACKET\"," . "\"biz_scene\":\"PERSONAL_PAY\"," . "\"out_biz_no\":\"".$data['out_biz_no']."\"," . "\"order_id\":\"".$data['order_id']."\"," . "\"pay_fund_order_id\":\"".$data['pay_fund_order_id']."\"" . " }"); $result = $aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ return $result; } else { return $result; } } //商家版支付宝提现 public function platTransferAccount($data) { try { $aop = $this->aop; $request = new AlipayFundTransUniTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"".$data['out_biz_no']."\"," . "\"trans_amount\":".$data['amount']."," . "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," . "\"biz_scene\":\"DIRECT_TRANSFER\"," . "\"mutiple_currency_detail\":{" . "\"payment_amount\":\"100.00\"," . "\"payment_currency\":\"CNY\"," . "\"trans_currency\":\"CNY\"," . "\"settlement_amount\":\"10.00\"," . "\"settlement_currency\":\"CNY\"," . "\"ext_info\":\"key=value\"" . " }," . "\"order_title\":\"商家版现金提现\"," . // "\"original_order_id\":\"20190620110075000006640000063056\"," . // "\"payer_info\":{" . // "\"identity\":\"info@ufutx.com\"," . // "\"identity_type\":\"ALIPAY_LOGIN_ID\"," . // "\"name\":\"福恋智能\"," . // " }," . "\"payee_info\":{" . "\"identity\":\"".$data['payee_account']."\"," . "\"identity_type\":\"ALIPAY_LOGON_ID\"," . "\"name\":\"".$data['payee_real_name']."\"" . " }," . "\"remark\":\"".$data['remark']."\"," . "\"business_params\":\"{\\\"sub_biz_scene\\\":\\\"REDPACKET\\\"}\"," . "\"passback_params\":\"{\\\"merchantBizType\\\":\\\"peerPay\\\"}\"" . " }"); // if (env('APP_ENV') != 'production') { // return true; // } $result = $aop->execute( $request); $result = $result->alipay_fund_trans_uni_transfer_response; if(!empty($result)&&$result->code == 10000){ return true; }else{ return ['code'=>1, 'msg'=>$result->sub_msg, 'aliapy_code'=>$result->code]; } } catch (\Exception $e) { $this->getError($e); return false; } } // 商家版支付宝提现-用户id public function UserTransferAccount($data) { try { $aop = $this->aop; $request = new AlipayFundTransUniTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"".$data['out_biz_no']."\"," . "\"trans_amount\":".$data['amount']."," . "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," . "\"biz_scene\":\"DIRECT_TRANSFER\"," . "\"mutiple_currency_detail\":{" . "\"payment_amount\":\"100.00\"," . "\"payment_currency\":\"CNY\"," . "\"trans_currency\":\"CNY\"," . "\"settlement_amount\":\"10.00\"," . "\"settlement_currency\":\"CNY\"," . "\"ext_info\":\"key=value\"" . " }," . "\"order_title\":\"商家版现金提现\"," . "\"payee_info\":{" . "\"identity\":\"".$data['payee_account']."\"," . "\"identity_type\":\"ALIPAY_USER_ID\"," . " }," . "\"remark\":\"".$data['remark']."\"," . "\"business_params\":\"{\\\"sub_biz_scene\\\":\\\"REDPACKET\\\"}\"," . "\"passback_params\":\"{\\\"merchantBizType\\\":\\\"peerPay\\\"}\"" . " }"); // if (env('APP_ENV') != 'production') { // return true; // } $result = $aop->execute( $request); $result = $result->alipay_fund_trans_uni_transfer_response; if(!empty($result)&&$result->code == 10000){ return true; }else{ return ['code'=>1, 'msg'=>$result->sub_msg]; } } catch (\Exception $e) { $this->getError($e); return false; } } // 获取阿里云用户信息 public function AlipayUserInfo($auth_code) { $c = $this->aop; $code = $auth_code; $request = new \AlipaySystemOauthTokenRequest(); $request->setGrantType("authorization_code"); $request->setCode($code); $result = $c->execute($request); if(!isset($result->alipay_system_oauth_token_response)){ return false; } $accessToken = $result->alipay_system_oauth_token_response->access_token; //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share $request= new \AlipayUserInfoShareRequest(); //授权类接口执行API调用时需要带上accessToken $result= $c->execute($request,$accessToken); $user = $result->alipay_user_info_share_response; return $user; } }