I did implement Pay in a shopping app using Braintree.
You're probably aware that when you use Braintree, you got a Sandbox environment, and a Production environment. Apple Pay will match this behavior, you'll have to generate two MechantID, one for the Sandbox, and then one for Prod.
In Braintree, you'll link to the Sandbox MechantID in the Braintree Sandbox Dashboard, and to the Prod MerchantID in the Braintree Production Dashboard.
In your app, you'll need to have (at least) 2 builds configuration, one for Sandbox/Debug, one for Production/Release. You'll probably create a MechantID constant like that:
#if CONFIG_RELEASE
static NSString *const MerchantID = @"merchant.com.yourappname.braintree";
#else
static NSString *const MerchantID = @"merchant.com.example.braintree";
#endif
So then when you init the Apple Pay sheet, you just pass the MerchantID constant and it will grab the right one.
As well have having two entitlements
files, on for each configuration pointing to the right Apple Pay Certificate. (The entitlements is generated when you toggle capabilities).
The Braintree documentation is really complete and helpful, please take a look.
I'm not sure how Stripe work, but I would bet the management of Sandbox/Prod basically works the same.
I hope this answer your question, I'd be happy to tell you more (if I can) about Apple Pay if you need so.