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.
I hope those aren't your actual live API credentials. If they, get them out of this thread immediately!
As for setting up Adaptive Payments apps, your app will use your API credentials. You will then user the Permissions API (or have people do it manually from their PayPal account profile) to have users grant permissions for your App to make calls on their behalf. That way you can send money from 3rd party accounts using your own credentials.