支付宝即时到账收款接口

官方文档

参考网站

1.src导入taobao接口包 lib导入jar包

百度网盘

2.三个支付宝界面

alipayapi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.alipay.config.*"%>
<%@ page import="com.alipay.util.*"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>支付宝纯担保交易接口</title>
</head>
<%
    ////////////////////////////////////请求参数//////////////////////////////////////

    //支付类型
    String payment_type = "1";
    //必填,不能修改
    //服务器异步通知页面路径。暂不处理
    String notify_url = "http://60.174.234.114:8080/cs4/notify_url.jsp";
    //需http://格式的完整路径,不能加?id=123这类自定义参数

    //页面跳转同步通知页面路径
    String return_url = "http://60.174.234.114:8080/cs4/return_url.jsp";
    //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/

    //卖家支付宝帐户
    String seller_email = new String("[email protected]".getBytes("ISO-8859-1"), "UTF-8"); //公司账号需要申请
    //必填 

    //商户订单号
    //String out_trade_no = new String(((String)request.getSession().getAttribute("orderid")).getBytes("ISO-8859-1"),"UTF-8");
    String orderid = String.valueOf(request.getAttribute("orderid"));
    String out_trade_no = new String(orderid);//系统毫秒数可否考虑?
    //商户网站订单系统中唯一订单号,必填

    //订单名称
    String subject = new String((String) request.getAttribute("productname"));
    //必填

    //付款金额
    //String price = new String(((String)request.getSession().getAttribute("money")).getBytes("ISO-8859-1"),"UTF-8");
    String price = new String((String) request.getAttribute("total"));
    //测试用 String price = "1.01";
    //必填

    //商品数量
    String quantity = "1";
    //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品

    //物流费用
    String logistics_fee = "0.00";
    //必填,即运费
    //物流类型
    String logistics_type = "EXPRESS";
    //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
    //物流支付方式
    String logistics_payment = "SELLER_PAY";
    //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
    //订单描述

    //////////////////////////////////////////////////////////////////////////////////

    //把请求参数打包成数组
    Map<String, String> sParaTemp = new HashMap<String, String>();
    sParaTemp.put("service", "create_partner_trade_by_buyer");
    sParaTemp.put("partner", AlipayConfig.partner);
    sParaTemp.put("_input_charset", AlipayConfig.input_charset);
    sParaTemp.put("payment_type", payment_type);
    sParaTemp.put("notify_url", notify_url);
    sParaTemp.put("return_url", return_url);
    sParaTemp.put("seller_email", seller_email);
    sParaTemp.put("out_trade_no", out_trade_no);
    sParaTemp.put("subject", subject);
    sParaTemp.put("price", price);
    sParaTemp.put("quantity", quantity);
    sParaTemp.put("logistics_fee", logistics_fee);
    sParaTemp.put("logistics_type", logistics_type);
    sParaTemp.put("logistics_payment", logistics_payment);

    //建立请求
    String sHtmlText = AlipaySubmit
            .buildRequest(sParaTemp, "get", "确认");
    out.println(sHtmlText);
%>
<body>
</body>
</html>

notify_url.jsp

<%
    /* *
     功能:支付宝服务器异步通知页面
     版本:3.3
     日期:2012-08-17
     说明:
     以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
     该代码仅供学习和研究支付宝接口使用,只是提供一个参考。

     //***********页面功能说明***********
     创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。
     该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。
     该页面调试工具请使用写文本函数logResult,该函数在com.alipay.util文件夹的AlipayNotify.java类文件中
     如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知
     //********************************
     * */
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.alipay.util.*"%>
<%@ page import="com.alipay.config.*"%>
<%@page import="xuntong.entity.Orderlist"%>
<%@page import="xuntong.impl.OrderListDAOImpl"%>
<%@page import="xuntong.dao.IOrderListDAO"%>
<%

    //获取支付宝POST过来反馈信息
    Map<String, String> params = new HashMap<String, String>();
    Map requestParams = request.getParameterMap();
    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"), "gbk");
        params.put(name, valueStr);
    }

    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
    //商户订单号

    String out_trade_no = new String(request.getParameter(
            "out_trade_no").getBytes("ISO-8859-1"), "UTF-8");

    //支付宝交易号

    String trade_no = new String(request.getParameter("trade_no")
            .getBytes("ISO-8859-1"), "UTF-8");

    //交易状态
    String trade_status = new String(request.getParameter(
            "trade_status").getBytes("ISO-8859-1"), "UTF-8");
    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//

    if (AlipayNotify.verify(params)) {//验证成功
        //////////////////////////////////////////////////////////////////////////////////////////
        //请在这里加上商户的业务逻辑程序代码
        //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

        if (trade_status.equals("WAIT_BUYER_PAY")) {
            //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款
            //判断该笔订单是否在商户网站中已经做过处理
            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
            //如果有做过处理,不执行商户的业务程序

            out.println("success"); //请不要修改或删除
        } else if (trade_status.equals("WAIT_SELLER_SEND_GOODS")) {
            //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货
            //判断该笔订单是否在商户网站中已经做过处理
            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
            //如果有做过处理,不执行商户的业务程序
            IOrderListDAO orderListDAO = new OrderListDAOImpl();
            Orderlist orderlist = orderListDAO.get(Integer.parseInt(out_trade_no));
            orderlist.setPaystatus("1");
            orderListDAO.update(orderlist);
            out.println("success"); //订单付款状态码更新了            //请不要修改或删除
        } else if (trade_status.equals("WAIT_BUYER_CONFIRM_GOODS")) {
            //该判断表示卖家已经发了货,但买家还没有做确认收货的操作
            //判断该笔订单是否在商户网站中已经做过处理
            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
            //如果有做过处理,不执行商户的业务程序

            out.println("success"); //请不要修改或删除
        } else if (trade_status.equals("TRADE_FINISHED")) {
            //该判断表示买家已经确认收货,这笔交易完成
            //判断该笔订单是否在商户网站中已经做过处理
            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
            //如果有做过处理,不执行商户的业务程序
            out.println("success"); //请不要修改或删除
        } else {
            out.println("success"); //请不要修改或删除
        }
        //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
        //////////////////////////////////////////////////////////////////////////////////////////
    } else {//验证失败
        out.println("fail");
    }
%>

return_url.jsp

<%@page import="xuntong.entity.Orderlist"%>
<%@page import="xuntong.impl.OrderListDAOImpl"%>
<%@page import="xuntong.dao.IOrderListDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Map"%>
<%@ page import="com.alipay.util.*"%>
<%@ page import="com.alipay.config.*"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>支付宝页面跳转同步通知页面</title>

<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
    <%
        //获取支付宝GET过来反馈信息
        Map<String, String> params = new HashMap<String, String>();
        Map requestParams = request.getParameterMap();
        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 out_trade_no = new String(request.getParameter(
                "out_trade_no").getBytes("ISO-8859-1"), "UTF-8");

        //支付宝交易号

        String trade_no = new String(request.getParameter("trade_no")
                .getBytes("ISO-8859-1"), "UTF-8");

        //交易状态
        String trade_status = new String(request.getParameter(
                "trade_status").getBytes("ISO-8859-1"), "UTF-8");
        //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//

        //计算得出通知验证结果
        boolean verify_result = AlipayNotify.verify(params);

        if (verify_result) {//验证成功
            //////////////////////////////////////////////////////////////////////////////////////////
            //请在这里加上商户的业务逻辑程序代码
    %>
    <div>
          <img src="images/buyOk.jpg">         //显示成功界面
    </div>
    <%
        //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

            if (trade_status.equals("WAIT_SELLER_SEND_GOODS")) {
                //判断该笔订单是否已支付,如果支付,通过out_trade_no,调用get(int orderid)获取用户订单信息,将status改为"1",调用update()
                IOrderListDAO orderListDAO=new OrderListDAOImpl();
                Orderlist orderlist = orderListDAO.get(Integer.parseInt(out_trade_no));
                orderlist.setPaystatus("1");
                orderListDAO.update(orderlist); //更新订单支付状态码
            }

            //该页面可做页面美工编辑
            //out.println("验证成功<br />");

            //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

            //////////////////////////////////////////////////////////////////////////////////////////
        } else {
            //该页面可做页面美工编辑
            out.println("验证失败");
        }
    %>
</body>
</html>
时间: 2024-10-02 01:10:04

支付宝即时到账收款接口的相关文章

搞定支付接口—支付宝即时到账支付接口详细流程和代码

搞定支付接口(一) 支付宝即时到账支付接口详细流程和java代码 为避免你们和我一样被支付接口搞得焦头烂额,写一个从申请开始到能收到钱为止的详细教程,实际上各个语言都可以用来集成支付接口,我用java来举例. 正所谓知己知彼,百战不殆.首先,我们来看一看支付宝平台给我们的说明. 打开支付宝 选择商家平台 选择电脑支付 进行如上操作后,来到如下图所示的页面 没有商家支付宝账号的需要注册,需要营业执照,经营信息,网址信息,联系人等等数据(图里说的很详细) 服务开通后,我们就可以集成了,我们点击如何集

支付宝-即时到账交易接口

引用 项目中需要集成支付宝,发现集成很简单,mark一下. 支付宝即时支付接口功能描述:通过支付宝的支付渠道,付款者可以直接汇款给另一个拥有支付宝账号的收款者. 支付宝官方接口:http://club.alipay.com/read-htm-tid-9976972.html 支付宝自带示例演示(create_direct_pay_by_user_jsp_utf8),已经添加附件,我们将其中的代码集成到我们项目中即可. 1.修改AlipayConfig.java中的partner,key,sell

支付宝(alipay)即时到账收款接口开发中的那些事儿

不会做,看看也可以会,要做好就还是需要多学习 国庆回来就一直没状态,看完<银河护卫队>,印象最深的竟然是只有两句台词的呆萌groot,昨天才休息一天,大耍大吃,今天还是把昨天的知识学习一下.前些天同事做一网站,需要用到支付宝接口,由于同事才学习PHP,我比他多学习了两天,我就帮忙参考了一下. demo就是教程 支付宝官方网站(https://b.alipay.com/order/techService.htm)下载了开发包,直接拷贝了PHP版本作为我们需要的版本,里面直接就是一个demo.要怎

支付宝:web页面扫码支付、网站支付、支付宝即时到账 + springmvc

一.场景:公司需要在网站上进行支付宝支付. 二.API:使用支付宝开放平台的支付能力-即时到账接口.支付宝开放平台链接三.分析: 1.支付宝的文档比较容易看,主要是有相应的DEMO,我这里看的DEMO是 JAVA-UTF-8版本. 2.导入DEMO,在com.alipay.config中填入对应的partner和key(在对应的商户后台获取)就可以直接运行了解支付流程了. 3.改写:我这边使用的是springmvc+mybatis.商品发起购买(走支付宝支付).跳转到支付宝.支付宝回调支付状态.

支付宝即时到账接口开发 - DEMO讲解

支付宝即时到帐接口 环境要求 PHP5.0以上,且需要开启curl.openssl. 文档地址: https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1 支付宝网页即时到账功能,可让用户在线向开发者的支付宝账号支付资金,交易资金即时到账,帮助开发者快速回笼资金. 交易步骤少,简单.方便. 交易资金三个月内可退款,提升买家购物保障. 有2个demo: 即时到账交易接口(create_direct

xuelipay 个人即时到账收款平台 原理及源码详解 支持微信支付宝

xuelipay 个人即时到账收款平台 原理及源码详解 现状及解决原理 1.1 现状 1.2 原理 1.3 例子 收款到完成收款过程源码详解 1 上传账户的收款码 2.2 创建订单 2.3 手机app 监听 2.4 服务器处理付款完成通知 漏单原理及漏单的处理办法 3.1 为什么会漏单 3.2? 漏单的处理办法 3.3 源码解析 收款异常检测 4.1 异常检测配置 4.2 源码解析 4.3 收款失败原因 如何解决并发 官网 接入文档 收费模式 9.? 优惠活动 现状及解决原理 1.1 现状 微信

支付宝即时到账接口

注:有些免费的支付宝即时到账或担保交易的插件,是由某些开发者开发的,但却进行了加密,这违反了GPL3的协议,同时也可能会有后门代码等,请谨慎使用这些免费或加密的插件. 本支付宝即时到账插件由mycncart官方开发并逐步根据系统升级而升级,沒有任何后门代码,请放心购买使用. 功能: 1. 针对有资格申请支付宝即时到账的中国国内公司商家设计使用: 2. 可设置最低启用金额; 3. 可设置适用的国家和地区用户; 4. 设定相关订单状态: 5. 当支付款项成功时,支付宝将相关操作异步通知给您的网站接口

集成支付宝即时到账接口

参考支付宝开放平台官方文档:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.VrqhFn&treeId=62&articleId=103566&docType=1 签约授权 即时到账接口需要商家签约后才有使用的权限. 商家签约后拥有 即时到账交易接口(create_direct_pay_by_user) 即时到账批量退款有密接口(refund_fastpay_by_platform_pwd) 这两个接口的

PHP九大接口视频教程( 支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套)

PHP九大接口视频教程(  支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 PHP九大接口视频教程(  支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 原文地址:https://www.cnblogs.com/lxwphp/p/9426625.html