It's not certain anything is wrong with your traffic. There is a big difference between how Facebook attributes conversions to ads and how GA attributes conversions to UTM values. Consider the following scenarios:
User views the ad, does not click, visits your site later that day through a different channel and purchases.
User clicks the ad, does not purchase, but returns two weeks later through a different channel and purchases.
User clicks the ad and makes a purchase during that visit.
Google Analytics will only attribute scenario 3 to your UTM values, but Facebook will attribute all 3 scenarios to your ad performance (in situation 2, the actual time frame is 4 weeks; in situation 1, view only, it's one day).
To get a better comparison, you'll need the Conversions > Multi-Channel Funnels > Assisted Conversions report.
If you have goals set up, change the Conversion dropdown to transactions only, and set the Lookback Window to 28 days prior to conversion to match Facebook's range. Set the date range for the report to match whatever Facebook is reporting on.
Then down at the data table, change the Primary Dimension to Source / Medium (or just Source, if all of your Facebook traffic has the same Medium value). The total of Direct/Last Click (scenario 3) and Assisted (scenario 2) Conversion Value for Facebook is the GA value most comparable to Facebook's number.
This is still not a perfect comparison. If you do have people viewing your ads without clicking, but visiting your site within a day to purchase via a non-ad channel, Facebook will credit your ad with that revenue but GA will not make a connection to Facebook at all. This seems unlikely to be a large amount of revenue, however.
And of course no tracking is perfect, so there are likely to be small discrepancies regardless. If the numbers are still far apart, that's when I would check tracking - and I'd check both Facebook and GA.