java集成支付宝

准备工作:
1. 沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info
获取支付宝网关(正式去掉dev)、appid、
2. 秘钥生成https://opendocs.alipay.com/open/291/105971
安装成功后,生成秘钥-RSA2,PKCS8-生成秘钥
3. 沙箱支付宝下载在这里插入图片描述
登录账号与密码详见1中的沙箱账号。
4. 支付宝demo :https://opendocs.alipay.com/open/54/104506
下载后导入系统,可选择在jsp中处理业务逻辑,或者将jsp中逻辑代码移至controller中进行逻辑处理。
5.参数说明
AlipayConfig

// 商户appid,沙箱环境中appid,正式环境申请账号后会生成appid
	public static String APPID = "";
	// 私钥 pkcs8格式的  2中生成应用私钥
	public static String RSA_PRIVATE_KEY = "";
	// 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问,notify_url.jsp中逻辑处理,或者填写controller请求,将逻辑处理移至controller层,不能地址栏传参
	public static String notify_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/notify_url.jsp";
	// 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址,return_url .jsp中逻辑处理,或者填写controller请求,将逻辑处理移至controller层,不能地址栏传参
	public static String return_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/return_url.jsp";
	// 请求网关地址正式环境:https://openapi.alipay.com/gateway.do
	public static String URL = "https://openapi.alipaydev.com/gateway.do";
	// 编码
	public static String CHARSET = "UTF-8";
	// 返回格式
	public static String FORMAT = "json";
	// 支付宝公钥  拿到2中的应用公钥,去1中,根据应用公钥,生成支付宝公钥。
	public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjrEVFMOSiNJXaRNKicQuQdsREraftDA9Tua3WNZwcpeXeh8Wrt+V9JilLqSa7N7sVqwpvv8zWChgXhX/A96hEg97Oxe6GKUmzaZRNh0cZZ88vpkn5tlgL4mH/dhSr3Ip00kvM4rHq9PwuT4k7z1DpZAf1eghK8Q5BgxL88d0X07m9X96Ijd0yMkXArzD7jg+noqfbztEKoH3kPMRJC2w4ByVdweWUT2PwrlATpZZtYLmtDvUKG/sOkNAIKEMg3Rut1oKWpjyYanzDgS7Cg3awr1KPTl9rHCazk15aNYowmYtVabKwbGVToCAGK+qQ1gT3ELhkGnf3+h53fukNqRH+wIDAQAB";
	// 日志记录目录
	public static String log_path = "/log";
	// RSA2
	public static String SIGNTYPE = "RSA2";

6.notify_url 与 return_url
1.return_url特性:

(1) 买家在支付成功后会看到一个支付宝提示交易成功的页面,该页面会停留几秒,然后会自动跳转回商户指定的同步通知页面(参数return_url);
(2) 该页面中获得参数的方式,需要使用GET方式获取,如request.QueryString(“out_trade_no”)、$_GET[‘out_trade_no’];
(3) 该方式仅仅在买家付款完成以后进行自动跳转,因此只会进行一次;
(4) 该方式不是支付宝主动去调用商户页面,而是支付宝的程序利用页面自动跳转的函数,使用户的当前页面自动跳转;
(5) 基于(4)的原因,可在本机而不是只能在服务器上进行调试;
(6) 返回URL只有一分钟的有效期,超过一分钟该链接地址会失效,验证则会失败;
(7) 设置页面跳转同步通知页面(return_url)的路径时,不要在页面文件的后面再加上自定义参数。

2.notify_url 特性

(1) 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
(2) 支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:request.Form(“out_trade_no”)、$_POST[‘out_trade_no’]。
(3) 支付宝主动发起通知,该方式才会被启用;
(4) 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);
(5) 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;
(6) 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;
(7) 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:2m,10m,10m,1h,2h,6h,15h);
(8) 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;
(9) cookies、session等在此页面会失效,即无法获取这些数据;
(10) 该方式的调试与运行必须在服务器上,即互联网上能访问;
(11) 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;
(12) 通知ID(参数notify_id)只有一分钟有效期,超过一分钟该次通知会验证失败。一旦验证成功下次再验证就会失效。
7.注意事项
1.app_pay:y :表示唤醒app支付
2.依赖

 <dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.6.0.ALL</version>
</dependency>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Java集成支付宝App支付,需要进行以下几个步骤: 1. 注册支付宝开发者账号并创建应用:首先,去支付宝开放平台(open.alipay.com)注册一个开发者账号,并创建一个应用。在创建应用时,会得到一个AppID,该ID在后续的集成过程中会用到。 2. 导入支付宝SDK:下载最新版本的支付宝SDK,并将其导入到Java开发环境中。一般来说,我们可以通过Maven或Gradle等构建工具来导入依赖。 3. 配置应用信息:在Java代码中,需要配置支付宝相关的参数,包括AppID、支付宝公钥、应用私钥等。这些信息在第一步中获取到的。 4. 创建支付订单:根据业务需求,我们需要创建支付订单并传递给支付宝App进行处理。订单信息包括订单号、支付金额、商品名称等。 5. 调起支付宝App:通过调用支付宝SDK提供的接口,将支付订单发送到支付宝App进行支付。支付宝App会弹出一个界面,展示订单信息和支付方式供用户选择。 6. 处理支付结果:支付宝App支付完成后,会返回支付结果。我们需要在Java代码中处理这个结果,判断支付是否成功,并执行相应的业务逻辑。 总的来说,集成支付宝App支付就是将支付宝SDK导入到Java项目中,并按照支付宝提供的接口规范进行相应的配置和调用,实现支付功能。通过以上步骤,我们可以在自己的Java应用中实现与支付宝App的支付交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值