Receipt and recipe are the same word, separated by centuries of semantic drift. Both descend from Latin recepta, the past participle of recipere — 'to take back, to receive' — from re- ('back') and capere ('to take').
In medieval English, a receipt was a formula — specifically a medical prescription received from a physician. The cooking sense ('a recipe') and the financial sense ('proof of payment') were both present by the 15th century, but it was all one word. The split happened gradually: recipe kept the formula meaning, receipt kept the financial one.
The silent 'p' in receipt is a 16th-century insertion. Renaissance scholars, eager to display Latin learning, altered the spelling to echo recipere. They did the same to debt (from debitum) and doubt (from dubitāre). In each case, a silent letter was planted as a monument to etymology, never to be spoken.
The Latin root capere — 'to take' — is one of the most productive in English. Through it we get capable, capture, captive, accept, except, perceive, conceive, and deceive. Every one involves some form of taking. A receipt is simply the proof that taking occurred.