Configurar um gateway de pagamento para RMA de trocas (somente B2C)
Se você não usa os Pagamentos do Salesforce, é possível configurar um gateway de pagamento para gerenciar pagamentos. Os pacotes de pagamento de alguns fornecedores estão disponíveis no AppExchange.
Edições obrigatórias
Importante Se você estiver usando trocas com o B2B ou o D2C Commerce, as etapas 1 a 4 já estarão configuradas durante a implementação do Gerenciamento de pedidos. Vá diretamente para a etapa 5.
-
Crie uma classe de adaptador de gateway de pagamento usando a estrutura de conector do Salesforce Apex.
Para ajudar você a começar, consulte estas classes de referência.
- Crie um registro de provedor de gateway de pagamento que aponte para a classe do adaptador que você criou.
- Em Configuração, defina uma credencial nomeada que contenha as informações de login e autenticação do provedor do gateway. A definição de chamada da classe do adaptador solicita a credencial nomeada.
- Vincule o registro do provedor de gateway de pagamento e a credencial nomeada criando um registro de gateway de pagamento.
- Associe o gateway de pagamento ao registro da loja da Web.
Exemplo
Para associar o gateway de pagamento ao registro da loja da Web, use um script como este
// Script to add a connection between the web store and the payment gateway for B2C Commerce stores
String webStoreName = 'SiteGenesis';
String paymentGatewayName = 'SalesforceAdapter';
// 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 payment gateway id from the payment gateway name
List<PaymentGateway> paymentGateways = [SELECT Id, PaymentGatewayName FROM PaymentGateway WHERE PaymentGatewayName = :paymentGatewayName];
System.debug('paymentGateways: ' + paymentGateways);
if(paymentGateways.isEmpty()){
System.debug('Error obtaining payment gateway with name ' + paymentGatewayName);
}
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;
}
Este artigo resolveu seu problema?
Diga-nos para podermos melhorar!
