Ge 38:1 It came to pass at that time that Judah departed from his brothers, and visited a certain Adullamite whose name was Hirah.
2 And Judah saw there a daughter of a certain Canaanite whose name was Shua, and he married her and went in to her.
3 So she conceived and bore a son, and he called his name Er.
4 She conceived again and bore a son, and she called his name Onan.
5 And she conceived yet again and bore a son, and called his name Shelah. He was at Chezib when she bore him.
6 Then Judah took a wife for Er his firstborn, and her name was Tamar.
7 But Er, Judah's firstborn, was wicked in the sight of the LORD, and the LORD killed him.
8 And Judah said to Onan, "Go in to your brother's wife and marry her, and raise up an heir to your brother."
9 But Onan knew that the heir would not be his; and it came to pass, when he went in to his brother's wife, that he emitted on the ground, lest he should give an heir to his brother.
10 And the thing which he did displeased the LORD; therefore He killed him also.
11 Then Judah said to Tamar his daughter-in-law, "Remain a widow in your father's house till my son Shelah is grown." For he said, "Lest he also die like his brothers." And Tamar went and dwelt in her father's house.
12 Now in the process of time the daughter of Shua, Judah's wife, died; and Judah was comforted, and went up to his sheepshearers at Timnah, he and his friend Hirah the Adullamite.
13 And it was told Tamar, saying, "Look, your father-in-law is going up to Timnah to shear his sheep."
14 So she took off her widow's garments, covered herself with a veil and wrapped herself, and sat in an open place which was on the way to Timnah; for she saw that Shelah was grown, and she was not given to him as a wife.
15 When Judah saw her, he thought she was a harlot, because she had covered her face.
16 Then he turned to her by the way, and said, "Please let me come in to you"; for he did not know that she was his daughter-in-law. So she said, "What will you give me, that you may come in to me?"
17 And he said, "I will send a young goat from the flock." So she said, "Will you give me a pledge till you send it?"
18 Then he said, "What pledge shall I give you?" So she said, "Your signet and cord, and your staff that is in your hand." Then he gave them to her, and went in to her, and she conceived by him.
19 So she arose and went away, and laid aside her veil and put on the garments of her widowhood.
20 And Judah sent the young goat by the hand of his friend the Adullamite, to receive his pledge from the woman's hand, but he did not find her.
21 Then he asked the men of that place, saying, "Where is the harlot who was openly by the roadside?" And they said, "There was no harlot in this place."
22 So he returned to Judah and said, "I cannot find her. Also, the men of the place said there was no harlot in this place."
23 Then Judah said, "Let her take them for herself, lest we be shamed; for I sent this young goat and you have not found her."
This story explains why God allowed Joseph to be sold to Egypt. God's plan was to remove Jacob and his descendants away from the influence of the Canaanites. Joseph was their advance party of sorts to prepare the way. There in Egypt they lived a separate life from the pagan influence around them. Pharaoh gave them an exclusive land to dwell in. Here, the intermingling and influence of the Canaanites is creeping into the family of Jacob. It affected their morality and way of life.
Also, Moses wants to show his original Israelite readers that God wants descendants for Abraham, Isaac, Jacob and the nation Israel. It's His will that they should multiply. Because Onan would not cooperate with God's plan, He killed him. Later, God would enact a law for Israel called the Levirate law (see Deut. 25:5-10) obligating a surviving brother to obtain a son for the brother who died by marrying his wife.
Apparently, Judah was not so concerned about having descendants. When his son was of marriageable age, he did not give Tamar to him. He was not cooperating with God's plan. When Tamar saw this, she acted as a harlot and obtained sons, descendants for Judah. What she did was wrong but God permitted it to happen.