2016-09-27 1 views
2

Je suis nouveau à l'intégration de passerelle de paiement. Je dois intégrer Braintree Payment Gateway avec l'application JSF. Quelqu'un peut-il montrer un exemple de base de la classe java et un exemple de page de paiement. J'ai vu un client Token comment le générer. J'ai écrit une classe d'échantillon et une page comme ci-dessous, mais je fais coudnt comme je ne comprends pas l'idée.En ce qui concerne l'intégration de la passerelle de paiement Braintree et Java

Page

<form id="checkout" method="post" action="/checkout"> 
    <div id="payment-form"></div> 
    <input type="submit" value="Pay $15"> 
</form> 

<script src="https://js.braintreegateway.com/v2/braintree.js"></script> 
<script> 
    // We generated a client token for you so you can test out this code 
    // immediately. In a production-ready integration, you will need to 
    // generate a client token on your server (see section below). 
    var clientToken = "sZWQiOmZhbHNlLCJtZXJjaGFudElkIjoiMzQ4cGs5Y2dmM2JneXcyYiIsInZlbm1vIjoib2ZmIn0="; 

    braintree.setup(clientToken, "dropin", { 
     container : "payment-form" 
    }); 

</script> 

Classe

import spark.Request; 
import spark.Response; 
import spark.Route; 

import com.braintreegateway.BraintreeGateway; 
import com.braintreegateway.Environment; 

public class BrainTreeController { 
    private static BraintreeGateway gateway = new BraintreeGateway(
       Environment.SANDBOX, 
       "your_merchant_id", 
       "your_public_key", 
       "your_private_key" 
      ); 
     post(new Route("/client_token") { 
      @Override 
      public Object handle(Request request, Response response) { 
      return gateway.clientToken().generate(); 
      } 
     }); 
} 

Je reçois une erreur après

Syntax error on token "post", @ expected before this token 

Répondre

3

Commander l'exemple ci-dessous de la Braintree Java SDK Implementation. Intégrer dans votre projet en fonction des besoins:

public class BrainTreeImplementation { 

private static Logger logger = Logger.getLogger(BrainTreeImplementation.class.getName()); 

// Below are the Braintree sandbox credentials 
private static BraintreeGateway gateway = null; 
private static String publicKey = "YOUR_PUBLIC_KEY"; 
private static String privateKey = "YOUR_PRIVATE_KEY"; 
private static String merchantId= "YOUR_MERCHANT_ID"; 

public static void main(String[] args) { 
    // Initialize Braintree Connection 
    gateway = connectBraintreeGateway(); 
    braintreeProcessing(); 
} 

public static void braintreeProcessing() { 

    System.out.println(" ----- BrainTree Implementation Starts --- "); 

    // Generate client Token 
    String clientToken = generateClientToken(); 
    System.out.println(" Client Token : " +clientToken); 

    // Receive payment method nonce 
    String nonceFromTheClient = receivePaymentMethodNonce(); 

    // Do payment transactions 
    BigDecimal amount = new BigDecimal("5.10"); 
    doPaymentTransaction(nonceFromTheClient, amount); 
} 

// Connect to Braintree Gateway. 
public static BraintreeGateway connectBraintreeGateway() { 
    BraintreeGateway braintreeGateway = new BraintreeGateway(
      Environment.SANDBOX, merchantId, publicKey, privateKey); 
    return braintreeGateway; 
} 

// Make an endpoint which return client token. 
public static String generateClientToken() { 
    // client token will be generated at server side and return to client 
    String clientToken = gateway.clientToken().generate(); 
    return clientToken; 
} 

// Make an endpoint which receive payment method nonce from client and do payment. 
public static String receivePaymentMethodNonce() { 
    String nonceFromTheClient = "fake-valid-mastercard-nonce"; 
    return nonceFromTheClient; 
} 

// Make payment 
public void String doPaymentTransaction(String paymentMethodNonce, BigDecimal amount) { 

    TransactionRequest request = new TransactionRequest(); 
    request.amount(amount); 
    request.paymentMethodNonce(paymentMethodNonce); 

    CustomerRequest customerRequest = request.customer(); 
    customerRequest.email("[email protected]"); 
    customerRequest.firstName("Chirag"); 
    customerRequest.lastName("Patel"); 

    TransactionOptionsRequest options = request.options(); 
    options.submitForSettlement(true); 

    // Done the transaction request 
    options.done(); 

    // Create transaction ... 
    Result<Transaction> result = gateway.transaction().sale(request); 
    boolean isSuccess = result.isSuccess(); 

    if (isSuccess) { 
     Transaction transaction = result.getTarget(); 
     displayTransactionInfo(transaction); 
    } else { 
     ValidationErrors errors = result.getErrors(); 
     validationError(errors); 
    } 
} 

private static void displayTransactionInfo(Transaction transaction) { 
    System.out.println(" ------ Transaction Info ------ "); 
    System.out.println(" Transaction Id : " +transaction.getId()); 
    System.out.println(" Processor Response Text : " +transaction.getProcessorResponseText()); 
} 

private static void validationError(ValidationErrors errors) { 
    List<ValidationError> error = errors.getAllDeepValidationErrors(); 
    for (ValidationError er : error) { 
     System.out.println(" error code : " + er.getCode()); 
     System.out.println(" error message : " + er.getMessage()); 
    } 
} 
} 
+0

comment puis-je faire un @ckpatel abonnement i Tried PaymentMethod PaymentMethod = generatePaymentMethod ("31558878"); \t \t \t \t SubscriptionRequest subscribtionrequest = new SubscriptionRequest(); \t \t \t \t \t \t .paymentMethodToken (paymentmethod.getToken()) \t \t \t \t \t \t .id ("Subsc31558878"). PlanID (plan.getId()) \t \t \t \t \t \t .paymentMethodNonce (receivePaymentMethodNonce()) \t \t \t \t \t \t .neverExpires (false) .billingDayOfMonth (30) \t \t \t \t \t \t .firstBillingDate (date) .prix (plan.getPrice()) addons() \t \t \t \t \t \t .done(). Résultat subscresult = gateway.subscription() \t \t \t \t \t \t .create (demande d'abonnement); –