栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 商户PC端接入支付宝支付的实现方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 商户PC端接入支付宝支付的实现方法

用户在商户网站上完成支付一、商户申请流程和业务场景即时到账:网上交易时,买家的交易资金直接打入卖家支付宝账户,快速回笼交易资金。申请条件:

1) 申请前必须拥有经过实名认证的支付宝账户;
2) 企业或个体工商户可申请;
3) 需提供真实有效的营业执照,且支付宝账户名称需与营业执照主体一致;
4) 网站能正常访问且页面显示完整,网站需要明确经营内容且有完整的商品信息;
5) 网站必须通过ICP备案。如为个体工商户,网站备案主体需要与支付宝账户主体名称一致;
6) 如为个体工商户,则团购不开放,且古玩、珠宝等奢侈品、投资类行业无法申请本产品;

使用场景:

买家选择产品

 

买家选择付款方式

买家选择手机扫一扫付款或 买家选择在电脑端登录账户付款

买家选择在电脑端登录账户付款,并完成交易

 

买家选择手机扫一扫并完成付款

 

查看交易记录

商户登入注册入口:https://b.alipay.com/signing/productDetail.htm?productId=I1011000290000001000#J_detailItem3
支付宝支付实例下载:https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1
支付宝支付开发者API:https://doc.open.alipay.com/docs/api.htm?docType=4&apiId=850

二、开发步骤及说明

  • 注册配置商户环境
  • 阅读开发者文档API:alipay.trade.pay (统一收单交易支付接口)

下载DEMO的java版本 -

代码结构:

 

1. index.jsp支付宝即时到账接口调用页面


    
  

准备用户产品参数

点击确认:提交到alipayapi.jsp

2.alipayapi.jsp获取调用接口配置公共参数

////////////////////////////////////请求参数//////////////////////////////////////

    //商户订单号,商户网站订单系统中唯一订单号,必填
    String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8");

    //订单名称,必填
    String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8");

    //付款金额,必填
    String total_fee = new String(request.getParameter("WIDtotal_fee").getBytes("ISO-8859-1"),"UTF-8");

    //商品描述,可空
    String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8");



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

    //把请求参数打包成数组
    Map sParaTemp = new HashMap();
    sParaTemp.put("service", AlipayConfig.service);
    sParaTemp.put("partner", AlipayConfig.partner);
    sParaTemp.put("seller_id", AlipayConfig.seller_id);
    sParaTemp.put("_input_charset", AlipayConfig.input_charset);
    sParaTemp.put("payment_type", AlipayConfig.payment_type);
    sParaTemp.put("notify_url", AlipayConfig.notify_url);
    sParaTemp.put("return_url", AlipayConfig.return_url);
    sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key);
    sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip);
    sParaTemp.put("out_trade_no", out_trade_no);
    sParaTemp.put("subject", subject);
    sParaTemp.put("total_fee", total_fee);
    sParaTemp.put("body", body);
    //其他业务参数根据在线开发文档,添加参数.文档地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.O9yorI&treeId=62&articleId=103740&docType=1
    //如sParaTemp.put("参数名","参数值");
    //建立请求
    String sHtmlText = AlipaySubmit.buildRequest(sParaTemp,"get","确认");
    out.println(sHtmlText);

调用AlipaySubmit.buildRequest(sParaTemp,”get”,”确认”);

3.AlipaySubmit组装调用支付宝网管接口


  public static String buildRequest(Map sParaTemp, String strMethod, String strButtonName) {
    //待请求参数数组
    Map sPara = buildRequestPara(sParaTemp);
    List keys = new ArrayList(sPara.keySet());

    StringBuffer sbHtml = new StringBuffer();

    sbHtml.append("");
    sbHtml.append("");

    return sbHtml.toString();
  }

组装成隐藏form表单自动提交。

同步和异步返回页面进行对返回参数的获取和对商户本身业务逻辑处理

4.说明

public class AlipayConfig {

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  // 合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
  public static String partner = "";

  // 收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号
  public static String seller_id = partner;

  // MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
  public static String key = "";

  // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
  public static String notify_url = "http://商户网址/create_direct_pay_by_user-JAVA-UTF-8/notify_url.jsp";

  // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
  public static String return_url = "http://商户网址/create_direct_pay_by_user-JAVA-UTF-8/return_url.jsp";

  // 签名方式
  public static String sign_type = "MD5";

  // 调试用,创建TXT日志文件夹路径,见AlipayCore.java类中的logResult(String sWord)打印方法。
  public static String log_path = "C:\";

  // 字符编码格式 目前支持 gbk 或 utf-8
  public static String input_charset = "utf-8";

  // 支付类型 ,无需修改
  public static String payment_type = "1";

  // 调用的接口名,无需修改
  public static String service = "create_direct_pay_by_user";


//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//↓↓↓↓↓↓↓↓↓↓ 请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  // 防钓鱼时间戳 若要使用请调用类文件submit中的query_timestamp函数
  public static String anti_phishing_key = "";

  // 客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1
  public static String exter_invoke_ip = "";

//↑↑↑↑↑↑↑↑↑↑请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

}

按照说明配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/137282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号