支付宝支付

原创 2016年06月01日 15:01:43

支付宝支付

  • 1.将jar导入项目中(有需要jar包的从下面的网盘下载http://pan.baidu.com/s/1mhUQwIG),将demo中的alipayto.jsp这个jsp放到自己的工程目录下
  • 2.新建一个工具类,这个类用来填写合作者ID,key,以及收款支付宝账号,以及支付成功后跳转的地址,支付成功后所有的逻辑处理都要这个地址中

代码块

package com.hysm.common.utils;

import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.alipay.common.PartnerCommon;
import com.common.Secret;
import com.demo.Demo;
import com.hysm.model.WeChatVO;
import com.hysm.web.action.BaseAction;
import com.utils.RequestHandler;

public class PayTool {

    private static String appid,appsecret,partner,partnerkey,openId;
    /**
     * 支付宝支付配置
     */
    public static void pay_detail(String subject ,String total_fee){
        HttpServletRequest request = ServletActionContext.getRequest();
        //合作号
        String partner="2088021066286629";
        //key
        String key="1ei12j07r2ep50jje1nn2sth3thm4k37";
        //收款支付宝账号
        String seller_email="583691572@qq.com";
        //支付成功返回的页面  
        String return_url="http://127.0.0.1:8080/ec/pay/pay!handle_alipay.do";
        //商品的信息
        request.setAttribute("subject", subject);
        //交易金额
        request.setAttribute("total_fee", total_fee);
        PartnerCommon.getAlipayConfig(partner, key, seller_email,return_url);
    }

}

-用户在页面点击支付后到action处理好自己的逻辑后,将商品的名称以及支付的金额带到页面,跳转地址:工程名+/jsp/pages/pay/alipayto.jsp()

代码块

public String test(){
        //1.先处理自己的逻辑
        //.........

        //2.调用支付宝支付
        PayTool.pay_detail("商品信息","金额");
        return "zhifubao";  //对应的zhifubao页面
    }

-到这为止,支付宝支付的一部分就完成了,接下来就等着支付宝给你返回结果,处理逻辑
这里写图片描述

-在PayToll中配置了返回的地址,在返回的这个方法中获取支付宝给你返回的参数,以及处理自己的逻辑

代码块

//支付成功处理
    public String pay_handle(){
        //获取支付宝GET过来反馈信息
        Map<String,String> params = new HashMap<String,String>();
        Map requestParams = request.getParameterMap();
        System.out.println(requestParams);
        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
            String name = (String) iter.next();
            String[] values = (String[]) requestParams.get(name);

            String valueStr = "";
            for (int i = 0; i < values.length; i++) {
                valueStr = (i == values.length - 1) ? valueStr + values[i]
                        : valueStr + values[i] + ",";
            }
            //乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
            //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "UTF-8");
            params.put(name, valueStr);
        }
        //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
        String trade_no = request.getParameter("trade_no");             //支付宝交易号
        System.out.println("trade_no:"+trade_no);
        String out_trade_no = request.getParameter("out_trade_no");     //获取订单号
        String total_fee = request.getParameter("total_fee");           //获取总金额
        String subject=request.getParameter("subject");                 //商品名称
        String buyer_id=request.getParameter("buyer_id");               //买家支付宝账户号
        //String subject = new String(request.getParameter("subject").getBytes("ISO-8859-1"),"utf-8");//商品名称、订单名称
        String body = "";
        if(request.getParameter("body") != null){
            body=request.getParameter("body");                          //商品描述
            //body = new String(request.getParameter("body").getBytes("ISO-8859-1"), "utf-8");//商品描述、订单备注、描述
        }
        String seller_email = request.getParameter("seller_email");     //卖家支付账号
        String seller_id = request.getParameter("seller_id");           //卖家支付宝账户号
        String buyer_email = request.getParameter("buyer_email");       //买家支付宝账号
        String buyer_account_name=request.getParameter("buyer_account_name");//卖家祝福包别人
        String trade_status = request.getParameter("trade_status");     //交易状态
        String createTime= (String)request.getSession().getAttribute("createTime"); //发起申请时间
        System.out.println("createTime:"+createTime);
        String return_url=request.getParameter("return_url");   //返回地址
        String error_code=request.getParameter("error_code");   //错误码
        String sign=request.getParameter("sign");               //签名
        String sign_type=request.getParameter("sign_type");     //签名类型
        String exterface=request.getParameter("exterface");     //接口名称
        String is_success=request.getParameter("is_success");   //成功标志
        String notify_id=request.getParameter("notify_id");     //通知校验ID
        String notify_time=request.getParameter("notify_time"); //通知时间
        String notify_type=request.getParameter("notify_type"); //通知类型
        String payment_type=request.getParameter("payment_type");//支付类型
        AlipayVO payVO1=new AlipayVO();
        payVO1.setBody(body);
        payVO1.setBuyer_account_name(buyer_account_name);
        payVO1.setBuyer_email(buyer_email);
        payVO1.setBuyer_id(buyer_id);
        payVO1.setError_code(error_code);
        payVO1.setExterface(exterface);
        payVO1.setIs_success(is_success);
        payVO1.setNotify_id(notify_id);
        payVO1.setNotify_time(notify_time);
        payVO1.setNotify_type(notify_type);
        payVO1.setOut_trade_no(out_trade_no);
        payVO1.setPayment_type(payment_type);
        payVO1.setReturn_url(return_url);
        payVO1.setSeller_email(seller_email);
        payVO1.setSeller_id(seller_id);
        payVO1.setSign(sign);
        payVO1.setSign_type(sign_type);
        payVO1.setSubject(subject);
        payVO1.setTotal_fee(total_fee);
        payVO1.setTrade_no(trade_no);
        payVO1.setTrade_status(trade_status);
        //计算得出通知验证结果
        boolean verify_result = AlipayNotify.verify(params);
        if(verify_result){//验证成功
            payService.insert_orderrecord(payVO1);  //订单新增
            payService.insert_return_url(payVO1);   //result_url
            payService.insert_notify_url(payVO1);   //notify_url
            OrderPayVO p=(OrderPayVO) request.getSession().getAttribute("cl"+user.getId());
            //支付成功,保存支付记录
            PayVO p1=new PayVO();
            p1.setPay_time(notify_time);
            p1.setResult("success");
            p1.setPaymoney(p.getTotal_fee());
            p1.setName(buyer_email);
            p1.setUserid(0);
            p1.setTrade_no(trade_no);
            p1.setOrderid(p.getOrder_id());
        }else{
            payService.insert_error(payVO1);
        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS支付宝支付集成

支付宝和微信都是业界的老大哥,相信大家都有所觉得文档、SDK都是各种坑吧(纯粹吐槽而已),本文先整理支付宝支付集成。...
  • smileZhangli
  • smileZhangli
  • 2017年11月16日 10:48
  • 792

接入支付宝支付功能思路总结

前段时间项目中使用到了支付宝的支付功能,这几天偶然一测试,发现居然无法支付了!费了半天劲,总算把问题解决了,但是在解决问题的过程中,花费了大量时间在回顾以 前的代码和重新理解支付宝逻辑中,因此决定在此...
  • superyu1992
  • superyu1992
  • 2016年07月08日 14:54
  • 2534

对Android中集成支付宝支付流程的总结

支付宝支付
  • baisemaque
  • baisemaque
  • 2016年03月22日 10:33
  • 6807

PHP支付宝支付开发流程

支付宝开发流程 1、首先我们先谈谈第三方支付 所谓第三方支付就是和一些各大银行签约,并具备一定实力和信誉保障的第三方独立机构提供的交易平台 目前市面上常见的有支付宝,财付通,网银,易宝支付等,网站...
  • chajinglong
  • chajinglong
  • 2017年02月15日 15:58
  • 8925

Android怎么集成支付宝支付和微信支付功能(下)

微信支付相对于支付宝支付较复杂,坑也多,看官请看。。。 我是App端开发文档  ,请对照着文档看 第一步:后台设置属于后台的事,我们可以参与的是提供应用包名,下载它提供的签名工具来得到应用签名,这里注...
  • Jason_Fangh
  • Jason_Fangh
  • 2017年02月22日 18:38
  • 758

支付宝接口,不要使用ip支付

支付宝接口测试不要使用IP支付,用域名进行支付。ip支付会被判断为恶意支付,封号半年、、、、、、...
  • heraklestgw
  • heraklestgw
  • 2014年03月20日 14:35
  • 593

仿支付宝的付款转圈动画---CAShapeLayer、UIBezierPath、CABasicAnimation

支付宝在支付过程中,支付按钮会有动画效果。最终效果如下图所示。 支付过程中: 支付成功: 觉得挺实用,就封装成了一个按钮,方便日后使用,话不多说,上代码。 先来看一下封装好的butto...
  • walkzooByiOS
  • walkzooByiOS
  • 2016年07月23日 14:18
  • 2043

Android支付宝支付开发流程

Android支付宝支付开发流程 需要内容: 账号信息:商户号、商户收款账号、商户私钥、支付宝公钥、 支付回调地址(支付宝请求服务器地址) aliPaySDK.jar包、 Base64.jav...
  • jiashuai94
  • jiashuai94
  • 2017年07月05日 19:56
  • 1141

支付宝支付流程详解

demo: https://github.com/zhonggaorong/alipayDemo 支付宝支付大致流程为 : 1. 公司与支付宝进行签约 , 获得商户ID(partner)和账号ID(s...
  • Liuwx_CSDN
  • Liuwx_CSDN
  • 2017年01月19日 10:17
  • 2899

Java 关于支付的实现(微信、支付宝)

在开发中我们经常会使用到支付功能,目前国内使用频率高的支付方式有微信支付和支付宝支付,apple pay和三星pay没有深入研究过,我们暂时不考虑这两个支付。 下面我们来先讲讲支付的基本流程 A、客户...
  • gbguanbo
  • gbguanbo
  • 2016年11月21日 16:29
  • 1686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:支付宝支付
举报原因:
原因补充:

(最多只允许输入30个字)