Exemple #1
0
 public function getRequestUrl($orderId, $returnUrl, $notifyUrl)
 {
     // 参数验证
     $validator = new Validator(array('orderId' => $orderId, 'returnUrl' => $returnUrl, 'notifyUrl' => $notifyUrl));
     $orderId = $validator->required()->digits()->min(1)->validate('orderId');
     $returnUrl = $validator->required()->validate('returnUrl');
     $notifyUrl = $validator->required()->validate('notifyUrl');
     $this->validate($validator);
     //设置订单 ID
     $this->orderId = $orderId;
     // 取得订单
     $orderBasicService = new OrderBasicService();
     $orderInfo = $orderBasicService->loadOrderInfoById($orderId);
     if (empty($orderInfo) || $orderInfo->isEmpty()) {
         throw new \InvalidArgumentException('invalid order_id [' . $orderId . ']');
     }
     $desc = $orderInfo['order_id'] . '|' . Money::toSmartyDisplay($orderInfo['order_amount']) . '|' . $orderInfo['system_id'];
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "create_direct_pay_by_user", "partner" => $this->partnerId, "payment_type" => 1, "notify_url" => $notifyUrl, "return_url" => $returnUrl, "seller_email" => $this->account, "out_trade_no" => $orderInfo['order_sn'] . '_' . $orderInfo['order_id'], "subject" => $desc, "total_fee" => Money::toDisplay($orderInfo['order_amount'], 2), "body" => $desc, "show_url" => '', "anti_phishing_key" => '', "exter_invoke_ip" => '', "_input_charset" => 'utf-8');
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipayConfig);
     return $alipaySubmit->buildRequestUrl($parameter);
 }