Salesforce-betalingen voor order namens
Plaats naadloos orders namens klanten met Salesforce Payments.
Vereiste editions
| Ondersteunde editions weergeven. |
Salesforce Payments kan werken met zowel Orderinvoer als OOBO, met behulp van B2C, B2B of D2C Commerce.
Omdat Salesforce Payment Gateways niet automatisch worden weergegeven als beschikbare integraties, is er een extra stap voor Order on Behalf Of B2B- en D2C-stores om met Salesforce Payments te werken.
Stel een alternatieve aanbieder in op de pagina Betalingen. Deze alternatieve aanbieder moet een creditcardgateway zijn die is gemaakt door Salesforce Payments. Voer voor het configureren van StoreIntegratedService voor Salesforce-betalingen dit script uit. Gebruik uw eigen webshopnaam en accountnaam van de handelaar voor de betalingsgateway.
Voorbeeld
// Script to add a connection between the webstore and the payment gateway for stores using
// Salesforce Payments (SFP) as the payment gateway for SFP does not show in the the Payment
// Alternate Integration.
String merchantAccountName = 'DemoTest';
String webStoreName = 'B2B Store';
// obtain webstoreid
List<WebStore> webstores = [SELECT Id, Name FROM WebStore WHERE Name = :webStoreName];
System.debug('Webstores: ' + webstores);
if(webstores.isEmpty()){
System.debug('Error obtaining webstore with name ' + webStoreName);
}
String webStoreId = webstores[0].Id;
System.debug('WebStoreId: ' + webStoreId);
// obtain merchant account
List<MerchAccPaymentMethodSet> merchAccPaymentMethodSet = [SELECT Id, MerchantAccountId, DeveloperName FROM MerchAccPaymentMethodSet WHERE MerchantAccount.Name = :merchantAccountName];
System.debug('Details: ' + merchAccPaymentMethodSet);
if(merchAccPaymentMethodSet.isEmpty()){
System.debug('Error obtaining MerchAccPaymentMethodSet with name ' + merchantAccountName);
}
String merchantAccountId = merchAccPaymentMethodSet[0].MerchantAccountId;
System.debug('merchantAccountId: ' + merchantAccountId);
// obtain payment gateway id from the merchant account
List<PaymentGateway> paymentGateways = [SELECT Id, PaymentGatewayName FROM PaymentGateway WHERE MerchantAccountId = :merchantAccountId];
System.debug('paymentGateways: ' + paymentGateways);
if(paymentGateways.isEmpty()){
System.debug('Error obtaining payment gateway with merchant account id ' + merchantAccountId);
}
String paymentGatewayId = paymentGateways[0].Id;
System.debug('paymentGatewayId: ' + paymentGatewayId);
// If a StoreIntegratedService already exists for Payment on the WebStore then update the Integration field with the paymentGatewayId
List<StoreIntegratedService> storeServices = [SELECT Id FROM StoreIntegratedService WHERE StoreId = :webStoreId AND ServiceProviderType ='Payment' ];
System.debug('storeServices: ' + storeServices);
if(storeServices.isEmpty()){
StoreIntegratedService storeService = new StoreIntegratedService(
StoreId = webStoreId,
Integration = paymentGatewayId,
ServiceProviderType ='Payment');
insert storeService;
} else {
StoreIntegratedService existingStoreService = storeServices[0];
existingStoreService.Integration = paymentGatewayId;
update existingStoreService;
}
Heeft dit artikel uw probleem opgelost?
Laat ons weten wat we kunnen doen om te verbeteren!

