Here's an approach that's easy to code (but FAR from the fastest). Let $ f(T,S,v,K) $ denote the price of a European call in the Heston model with time-to-expire $T$, initial price $S$, initial volatility $v$, strike $K$. First, use the tower property to transform the pricing problem: \begin{align*} V_{0} & =\mathbb{E}\left[e^{-r\left(t+\tau\right)}\left(S_{t+\tau}/S_{t}-K\right)^{+}\right]\\ & =\mathbb{E}\left[\frac{e^{-rt}}{S_{t}}\mathbb{E}\left[e^{-r\tau}\left(S_{t+\tau}-KS_{t}\right)^{+}\mid\mathcal{F}_{t}\right]\right]\\ & =\mathbb{E}\left[\frac{e^{-rt}}{S_{t}}f(\tau,S_{t},v_{t},KS_{t})\right]. \end{align*} Now perform a Monte-Carlo simulation to approximate the above (the advantage here is that you can use existing procedures to compute $f$).