public function directAliPayProcess($customerToken, $request) {
    if ($customerToken !== null && $request !== null) {
      $url = $this->url . str_replace(":customerToken", $customerToken, Connect2PayClient::$API_ROUTES['ALIPAY_DIRECT_PROCESS']);

      $request->setApiVersion($this->getApiVersion());

      $result = $this->doPost($url, json_encode($request), false);

      if ($result != null && is_object($result)) {
        $apiResponse = AliPayDirectProcessResponse::getFromJson($result);

        return $apiResponse;
      } else {
        $this->clientErrorMessage = 'No result received from direct AliPay processing call: ' . $this->clientErrorMessage;
      }
    } else {
      $this->clientErrorMessage = '"customerToken" and "request" must not be null';
    }

    return null;
  }