I am working on an eCommerce platform that will allow a buyer to buy products from multiple stores and checkout with one payment using Paypal (unified checkout). My scenario is exactly like this:
https://www.paypalobjects.com/webstatic/en_US/developer/docs/ap/AdapPymntRolesApp_B.gif
The flow of the app would be starting the checkout on our website, then redirecting to Paypal for user to pay, then be redirected back to our website. Like this:
https://www.paypalobjects.com/webstatic/en_US/developer/docs/ap/AdapPymntSrvcFlow_A.gif
My confusion is with the credentials passed to the API.
Dictionary<string, string> configMap = new Dictionary<string, string>();
configMap = GetConfig();
// Signature Credential
configMap.Add("account1.apiUsername", "jb-us-seller_api1.paypal.com");
configMap.Add("account1.apiPassword", "WX4WTU3S8MY44S7F");
configMap.Add("account1.apiSignature", "AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy");
Who's API credentials are these? Surely we won't make the buyer generate an API key in their PayPal account. If it's the merchant (receiver), what if we have 2 receiver's? Do I do this:
Dictionary<string, string> configMap = new Dictionary<string, string>();
configMap = GetConfig();
// Signature Credential
configMap.Add("account1.apiUsername", "jb-us-seller_api1.paypal.com");
configMap.Add("account1.apiPassword", "WX4WTU3S8MY44S7F");
configMap.Add("account1.apiSignature", "AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy");
configMap.Add("account2.apiUsername", "jb-us-seller_api1.paypal2.com");
configMap.Add("account2.apiPassword", "WX4WTU3S8MY44S7F2");
configMap.Add("account2.apiSignature", "AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy2");
Or do we need to generate an apiUsername, apiPassword and apiSignature from our PayPal Business account and use that?
We are not taking any money from the buyer, we are purely a middle man, connecting buyers and sellers, at this point. All fee's will be passed on to the receivers.