java实现网站paypal支付功能并且异步修改订单的状态
java实现网站paypal支付功能并且异步修改订单的状态:步骤如下
第一步:去paypal的官网https://www.paypal.com注册一个个人账号,在创建沙箱测试账号时需要用到
第二步:paypal提供了模拟的测试环境,我们需要在https://www.sandbox.paypal.com/去创建一个虚拟卖家账号和买家账号
(必须用第一步注册的真实账号才能登录进去,沙箱账号是登录不进去的)
第三步:登录成功后创建卖家、买家账号,如果不知道在哪创建账号可以直接点击这个链接https://developer.paypal.com/developer/accounts/
如下图:
上面几个就是我创建的卖家和买家测试账号,如果创建不了的可以私信我
第四步:编写java代码,把必要的数据传给paypal就行,比如金额、产品描述等等
第五步:编写异步回调路径的java代码
/**
* pay pal支付返回信息
* @param request
* @param response
*/
@RequestMapping("payPal/recharge")
public void payPal(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IOException, ParseException {
String itemNumber="";
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String paramName = (String) en.nextElement();
String paramValue = request.getParameter(paramName);
if(paramName.equals("item_number")){
itemNumber=paramValue;
}
}
String id[]=itemNumber.split(",");
PrintWriter out=response.getWriter();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate = sdf.format(new Date());
Date date = sdf.parse(sDate);
String str1 = request.getParameter("tx");
/*正式环境下
String str2 = "&at=sTvmKEM1YR2EmQXW3VyBrqYWiX-8_wr0Sj5w2DQ5uqGoakHYOCKcFsaAAU4";
*/
String str2 = "&at=VmjfBuVl1vbSC6bMV7xvROqisIsrMpKftSx_bLbAnNr-UO2JsLnAR2wfzK8";
String str = "?tx=" + str1 + "&cmd=_notify-synch" + str2;
/*
String str = "?tx=" + str1 + "&cmd=_notify-validate" + str2;
*/
/* 正式环境下
String payPalUrl = "https://www.paypal.com/cgi-bin/webscr";
*/
String payPalUrl = "https://www.sandbox.paypal.com/cgi-bin/webscr";
payPalUrl = payPalUrl + str;
URL u = new URL(payPalUrl);
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
PrintWriter pw = new PrintWriter(uc.getOutputStream());
pw.println(str);
pw.close();
//接受PayPal对IPN回发的回复信息
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String line = "";
String txn_id = ""; //paypal的号码
String item_name = "";//本地订单号
String contact_phone = "";
int i = 0;
String res = "";
String msg = "";
while ((line = in.readLine()) != null) {
i = i + 1;
if (i == 1) {
res = line;
}
if (res.equals("SUCCESS")) {
if (line.indexOf("txn_>
原文博客的链接地址:https://cnblogs.com/qzf/
以上是 java实现网站paypal支付功能并且异步修改订单的状态 的全部内容, 来源链接: utcz.com/z/394682.html