Since you already have an integrated refund option, is it feasible for the user to determine the exact amount that will be sent to the primary address and the rest for a refund? Sending change to the refund address is done and will be determined after the second confirmation and locking of the exchange rate in the order.
I'm just thinking out loud.
Although in general, I'm not sure how much the requests for such a possibility would justify the additional effort to implement such a feature.
This would work great incase one is receiving BTC. If one was receiving coins via other networks such as Ethereum or Tron, that would be two different transactions implying extra fees.