A few weeks is way too long to wait.
If a buyer doesn't pay you can open a dispute as early as four days after the transaction.
Although I figure waiting seven days is more reasonable.
Four days after opening the dispute you close it and eBay will issue you a credit for your final value fees and you get to relist.
Click here
http://pages.ebay.ca/help/sell/unpaid-items.html