app = new \AopClient; $this->app->appId = self::APPID; $this->app->rsaPrivateKey = self::RSAPRIVATEKEY; $this->app->alipayrsaPublicKey = self::ALIPAYRSAPUBLICKEY; $this->app->signType = self::SIGN_TYPE; $this->app->gatewayUrl = self::GATE_WAY_URL; $this->app->postCharset = 'GBK'; $this->app->format = 'json'; } public function send(array $data) { $type = $data['type']; $params = [ 'body' => $data['body'], 'subject' => $data['subject'], 'out_trade_no' => $data['out_trade_no'], 'timeout_express' => $data['timeout_express'], 'total_amount' => $data['total_amount'], 'product_code' => 'QUICK_WAP_WAY', ]; switch ($type) { case 'App': return $this->AlipayTradeAppPayRequest($data); break; case 'Wap': $return_url = $data['return_url']; return $this->AlipayTradeWapPayRequest($params, $return_url); break; } } private function AlipayTradeWapPayRequest(array $data, $return_url) { $request = new \AlipayTradeWapPayRequest(); $request->setBizContent(json_encode($data)); $request->setNotifyUrl(env('ALI_PAY_CALL_BACK')); $request->setReturnUrl($return_url); return $this->app->pageExecute($request); } private function AlipayTradeAppPayRequest(array $data) { $request = new \AlipayTradeAppPayRequest(); $request->setBizContent(json_encode($data)); $request->setNotifyUrl(env('ALI_PAY_CALL_BACK')); return $this->app->sdkExecute($request); } public function notify(array $data) { return $this->app->rsaCheckV1($data, $this->rsaPublicKeyFilePath, self::SIGN_TYPE); } public function query(string $trade_no) { } public function refund(array $data) { } public function makeSign(array $data) { } }