关于Braintree支付网关与Java的集成

关于Braintree支付网关与Java的集成,java,paypal,braintree,braintree-sandbox,Java,Paypal,Braintree,Braintree Sandbox,我不熟悉支付网关集成。我需要将Braintree支付网关与JSF应用程序集成。有人能给我看一个java类的基本示例和示例支付页面吗。我看到一些客户端令牌如何生成它。我写了一个示例类和页面,如下所示,但我无法理解,因为我不明白 页面 <form id="checkout" method="post" action="/checkout"> <div id="payment-form"></div> <input type="submit"

我不熟悉支付网关集成。我需要将
Braintree支付网关
与JSF应用程序集成。有人能给我看一个java类的基本示例和示例支付页面吗。我看到一些客户端令牌如何生成它。我写了一个示例类和页面,如下所示,但我无法理解,因为我不明白

页面

<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>
我在邮件中收到一个错误

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

从中检查以下示例。根据要求将其集成到项目中:

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("cpatel@gmail.com");
    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());
    }
}
}
公共类BrainTreeImplementation{
私有静态记录器Logger=Logger.getLogger(BrainTreeImplementation.class.getName());
//下面是Braintree沙盒凭据
私有静态BraintreeGateway网关=null;
私有静态字符串publicKey=“您的\u PUBLIC\u KEY”;
私有静态字符串privateKey=“您的私钥”;
私有静态字符串merchantId=“您的\u商户\u ID”;
公共静态void main(字符串[]args){
//初始化大脑树连接
网关=连接BraintreeGateway();
脑力加工();
}
公共静态无效braintreeProcessing(){
System.out.println(“----BrainTree实现启动---”);
//生成客户端令牌
字符串clientToken=generateClientToken();
System.out.println(“客户端令牌:“+clientToken”);
//立即接收付款方式
字符串nonefromtheclient=receivePaymentMethodNonce();
//进行支付交易
BigDecimal金额=新的BigDecimal(“5.10”);
doPaymentTransaction(非客户,金额);
}
//连接到Braintree网关。
公共静态BraintreeGateway连接BraintreeGateway(){
BraintreeGateway BraintreeGateway=新的BraintreeGateway(
环境(沙箱、商品、公钥、私钥);
返回大脑之路;
}
//创建一个返回客户端令牌的端点。
公共静态字符串generateClientToken(){
//客户端令牌将在服务器端生成并返回到客户端
字符串clientToken=gateway.clientToken().generate();
返回clientToken;
}
//创建一个端点,该端点从客户端接收付款方法nonce并进行付款。
公共静态字符串receivePaymentMethodNonce(){
字符串nonefromtheclient=“假有效万事达卡nonce”;
返回非默认客户;
}
//付款
公共作废字符串doPaymentTransaction(字符串paymentMethodNonce,BigDecimal金额){
TransactionRequest=新TransactionRequest();
请求。金额(金额);
请求。paymentMethodNonce(paymentMethodNonce);
CustomerRequest CustomerRequest=request.customer();
customerRequest.email(“cpatel@gmail.com");
客户要求姓名(“Chirag”);
customerRequest.lastName(“Patel”);
TransactionOptions请求选项=request.options();
选项。submitForSettlement(true);
//完成事务请求
选项。完成();
//创建事务。。。
结果=gateway.transaction().sale(请求);
布尔isSuccess=结果。isSuccess();
如果(isSuccess){
Transaction=result.getTarget();
显示交易信息(交易);
}否则{
ValidationErrors errors=result.getErrors();
验证错误(错误);
}
}
私有静态无效显示事务处理信息(事务处理){
System.out.println(“----交易信息----”;
System.out.println(“事务Id:+Transaction.getId());
System.out.println(“处理器响应文本:+transaction.getProcessorResponseText());
}
私有静态void validationError(ValidationErrors错误){
列表错误=错误。getAllDeepValidationErrors();
对于(ValidationError:error){
System.out.println(“错误代码:+er.getCode());
System.out.println(“错误消息:+er.getMessage());
}
}
}

如何订阅@ckpatel我尝试了PaymentMethod PaymentMethod=generatePaymentMethod(“31558878”);SubscriptionRequest SubscriptionRequest=新SubscriptionRequest();.paymentMethodToken(paymentmethod.getToken()).id(“Subsc31558878”).planId(plan.getId()).paymentMethodNonce(receivePaymentMethodNonce()).neverExpires(false).billingDayOfMonth(30).firstBillingDate(date).price(plan.getPrice()).addOns().done();Result subscresult=gateway.subscription().create(subscriptionrequest);
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("cpatel@gmail.com");
    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());
    }
}
}