Simple manipulation with the given equation leads to
1+yf(x)−yf(x+y)−y2f(x)f(x+y)yf(x)−yf(x+y)=1,=y2f(x)f(x+y).
After cancelling y=0 another manipulation gives
f(x)−f(x+y)f(x+y)f(x)−f(x+y)f(x+y)f(x)−1f(x+y)f(x)f(x+y)f(x+y)1=yf(x)f(x+y),=yf(x),=yf(x),=1+yf(x),=1+yf(x)f(x),=(1+yf(x))⋅f(x)1=f(x)1+y.
(evidently, all the cancelled expressions are nonzero) and so
f(x+y)1=y+f(x)1
for any x,y∈R+. Hence
y+f(x)1=x+f(y)1.
Setting y=1 we get
f(x)1=x+f(1)1−1=x+c,sof(x)=x+c1
with a constant c. As f(x)>0 for any x>0, we have x+c>0 for any x>0 and therefore c≥0.
We can easily check that the function f(x)=1/(x+c) satisfies the given conditions for any c≥0:
(1+x+cy)(1−x+y+cy)=x+cx+c+y⋅x+y+cx+y+c−y=x+cx+c+y⋅x+y+cx+c=x+y+cx+c+y.
But x+y+cx+c+y=1, so the condition is satisfied for all x,y>0 and c≥0.