Maven坐标

com.paypal.sdk

rest-api-sdk

LATEST

JAVA工具类源码import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import com.paypal.api.payments.Amount;

import com.paypal.api.payments.Details;

import com.paypal.api.payments.Item;

import com.paypal.api.payments.ItemList;

import com.paypal.api.payments.Links;

import com.paypal.api.payments.Payer;

import com.paypal.api.payments.Payment;

import com.paypal.api.payments.PaymentExecution;

import com.paypal.api.payments.RedirectUrls;

import com.paypal.api.payments.Transaction;

import com.paypal.base.rest.APIContext;

import com.paypal.base.rest.PayPalRESTException;

public class PaypalUtil {

// sandbox

private final static String payPalClientID = "paypal客户端ID";

private final static String payPalClientSecret = "paypal客户端密钥";

private final static String payPalMode = "sandbox";

// live

//private final static String payPalClientID = "paypal客户端ID";

//private final static String payPalClientSecret = "paypal客户端密钥";

//private final static String payPalMode = "live";

/**

* 获取Paypal付款链接

* @param orderId

* @param orderName

* @param amt

* @param returnUrl

* @return

*/

public static String getPayLink(String orderId, String orderName, String amt, String returnUrl) {

String payLink = "";

// PayPal init

APIContext apiContext = new APIContext(payPalClientID, payPalClientSecret, payPalMode);

// Set payment details

Details details = new Details();

details.setShipping("0");

details.setSubtotal(amt);

details.setTax("0");

// Payment amount

Amount amount = new Amount();

amount.setCurrency("USD");

// Total must be equal to sum of shipping, tax and subtotal.

amount.setTotal(amt);

amount.setDetails(details);

// Transaction information

Transaction transaction = new Transaction();

transaction.setAmount(amount);

transaction.setDescription(orderName);

// ItemList information

ItemList itemList = new ItemList();

List items = new ArrayList();

Item item = new Item();

item.setName(orderName);

item.setDescription(orderName);

item.setCurrency("USD");

item.setQuantity("1");

item.setTax("0");

item.setPrice(amt);

items.add(item);

itemList.setItems(items);

transaction.setItemList(itemList);

// Add transaction to a list

List transactions = new ArrayList();

transactions.add(transaction);

// Add payer details

Payer payer = new Payer();

payer.setPaymentMethod("paypal");

// Add payment details

Payment payment = new Payment();

payment.setIntent("sale");

payment.setPayer(payer);

payment.setTransactions(transactions);

// Add redirect URLs

RedirectUrls redirectUrls = new RedirectUrls();

redirectUrls.setCancelUrl(returnUrl);

redirectUrls.setReturnUrl(returnUrl + orderId);

payment.setRedirectUrls(redirectUrls);

// Create payment

try {

Payment createdPayment = payment.create(apiContext);

Iterator links = createdPayment.getLinks().iterator();

while (links.hasNext()) {

Links link = links.next();

if (link.getRel().equalsIgnoreCase("approval_url")) {

// REDIRECT USER TO link.getHref()

payLink = link.getHref();

}

}

} catch (PayPalRESTException e) {

System.err.println(e.getDetails());

}

return payLink;

}

/**

* 获取Paypal付款状态

* @param paymentId

* @param payerId

* @return

*/

public static String getPayState(String paymentId, String payerId) {

String payState = "";

// PayPal init

APIContext apiContext = new APIContext(payPalClientID, payPalClientSecret, payPalMode);

Payment payment = new Payment();

payment.setId(paymentId);

PaymentExecution paymentExecution = new PaymentExecution();

paymentExecution.setPayerId(payerId);

try {

Payment createdPayment = payment.execute(apiContext, paymentExecution);

payState = createdPayment.getState();

//  BigDecimal paymentAmt = new BigDecimal(createdPayment.getTransactions().get(0).getAmount().getTotal());

//  String emailAddress = createdPayment.getPayer().getPayerInfo().getEmail();

} catch (PayPalRESTException e) {

System.err.println(e.getDetails());

}

return payState;

}

}

paypal java_PaypalUtil PayPal付款JAVA工具类相关推荐

  1. 干货:排名前 16 的 Java 工具类!

    2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类!   在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...

  2. 排名前 16 的 Java 工具类

    转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...

  3. beanutils工具类_16 个超级实用的 Java 工具类!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  4. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  5. Java工具类——UUIDUtils

    借用一下百度百科的解释,来看一下UUID是什么. UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Ope ...

  6. java 文本工具类_干货:排名前16的Java工具类

    原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...

  7. 干货:排名前16的Java工具类

    image 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源 ...

  8. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  9. 排名前16的Java工具类

    原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...

  10. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符

    Java工具类--拆分字符串组装数组,替换字符 >>>>>>>>>>>>>>>>>>> ...

最新文章

  1. 深入了解line-height
  2. Android 如何判断CPU是32位还是64位
  3. No IP specified. Please specify IP with ‘objects’
  4. 机器学习中导数最优化方法(基础篇)
  5. Linux下如何进行FTP设置
  6. 汇编排序知识之冒泡排序
  7. iOS开发——手机号,密码,邮箱,身份证号,中文判断
  8. 几个用于序列化的代码片段
  9. 用asp.net编写冒泡排序法
  10. hdu6107 倍增法st表
  11. then 微信小程序_微信小程序和es6 promise的关系
  12. Math,Number
  13. 软件工程第1次阅读作业
  14. Golang语言 零基础入门教程
  15. 业务太忙,真的是没时间搞自动化理由吗?
  16. 《演员的自我修养》读后感
  17. 推荐一款稳定快速免费的前端开源项目 CDN 加速服务
  18. Activity生命周期的三种状态
  19. ubuntu 挂载文件后,文件权限属于root,只能读不能写解决办法
  20. I2C总线原理和应用实例(51单片机和AT24C02的I2C通讯)

热门文章

  1. win10JDK环境变量的配置
  2. 【编程|二十四点】关于编程解决二十四点的两种思路
  3. 如何使用Bootbox?
  4. 数据结构学习之矩阵乘法与矩阵的转置
  5. 神思SS628(100)型第二代身份证验证阅读机具二次开发
  6. 推荐一个好看且实用的火狐浏览器新标签页插件【火狐浏览器新标签页自定义美化】
  7. 在电脑上如何用桌面便签进行日程管理?
  8. c/c++:双人对战五子棋源代码
  9. qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ i
  10. 算法模板-深度优先遍历