java 实现支付宝

java 实现支付宝  

//实现java支付宝很简单,只要从支付宝官方下载 

http://help.alipay.com/support/index_sh.htm 下载程序,配置一下参数就OK了; 
1.先到 http://help.alipay.com/support/index_sh.htm 下接口程序,右下角有个“接口资料下载”点击下载进入下载页面 http://club.alipay.com/read.php?tid=9976972 选择你要下载支付宝的接口类型;我是选择“支付宝即时到账收款接口” 

2.解压以后,可以看到很多种版本语言的支付宝例子,选择你要的语言类型;这里我是选择的是“alipaydirect\alipaydirect\支付宝即时到帐接口\java\create_direct_pay_by_user_jsp_utf8”是UTR-8的程序; 

3.将项目导入到你的开发平台上,也就是myeclipse平台上,就可以看到项目的结构了。然后配置支付宝,作为测试的话这里只要修改一个文件就可以了,其他文件都不需要修改的,这个文件就是“AlipayConfig.java”里面的// 
↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 
// 合作身份者ID,以2088开头由16位纯数字组成的字符串 
public static String partner = ""; 

// 交易安全检验码,由数字和字母组成的32位字符串 
public static String key = ""; 

// 签约支付宝账号或卖家收款支付宝帐户 
public static String seller_email = ""; 

// 支付宝服务器通知的页面 要用 http://格式的完整路径,不允许加?id=123这类自定义参数 
// 必须保证其地址能够在互联网中访问的到 
public static String notify_url = "http://www.xxx.cn/create_direct_pay_by_user_jsp_utf8/notify_url.jsp"; 

// 当前页面跳转后的页面 要用 http://格式的完整路径,不允许加?id=123这类自定义参数 
// 域名不能写成http://localhost/create_direct_pay_by_user_jsp_utf8/return_url.jsp ,否则会导致return_url执行无效 
public static String return_url = "http://127.0.0.1:8080/create_direct_pay_by_user_jsp_utf8/return_url.jsp"; 
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 

4.然后开启服务器,运行index.jsp页面就可以看到效果了; 

5.若需要了解具体得信息,在下载的文件里面有一个帮助文档PDF文件“支付宝即时到账接口集成教程.pdf”和“即时到账交易接口(create_direct_pay_by_user).pdf”; 
在这个“alipaydirect\alipaydirect\支付宝即时到帐接口\java\create_direct_pay_by_user_jsp_utf8\”还有一个“readme.txt”帮助文件;仔细看一下帮助文档就可以明白的! 
版权声明:支持转载,请注明文章出处:http://563525042.iteye.com/admin/blogs/1147129  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Java实现支付宝App支付,需要遵循以下步骤: 1. 获取支付宝开发者账号并创建应用程序,获取应用程序的APPID、私钥和公钥。 2. 引入支付宝SDK,可通过maven等方式引入。 3. 在应用程序中实现调用支付宝SDK的代码,具体代码如下: ```java //构造支付订单信息 String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01"); //对支付订单信息进行签名 String sign = sign(orderInfo, privateKey); //将签名后的支付订单信息和应用程序的APPID拼接成最终的支付请求参数 String payInfo = orderInfo + "&sign=\"" + sign + "\"&" + getSignType(); //调用支付宝SDK发起支付请求 final PayTask payTask = new PayTask(activity); String result = payTask.pay(payInfo, true); //处理支付结果 final PayResult payResult = new PayResult(result); final String resultStatus = payResult.getResultStatus(); if (TextUtils.equals(resultStatus, "9000")) { //支付成功 } else { //支付失败或取消 } ``` 4. 实现获取支付订单信息、签名和签名类型等方法,具体代码如下: ```java //获取支付订单信息 public static String getOrderInfo(String subject, String body, String price) { //构造支付订单信息 Map<String, String> params = new HashMap<>(); params.put("app_id", APPID); params.put("biz_content", "{\"timeout_express\":\"30m\",\"product_code\":\"QUICK_MSECURITY_PAY\",\"total_amount\":\"" + price + "\",\"subject\":\"" + subject + "\",\"body\":\"" + body + "\",\"out_trade_no\":\"" + getOutTradeNo() + "\"}"); params.put("charset", "utf-8"); params.put("method", "alipay.trade.app.pay"); params.put("sign_type", "RSA2"); params.put("timestamp", getCurrentTime()); params.put("version", "1.0"); return buildOrderParam(params); } //对支付订单信息进行签名 public static String sign(String content, String privateKey) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey, Base64.DEFAULT)); KeyFactory keyf = KeyFactory.getInstance("RSA"); PrivateKey priKey = keyf.generatePrivate(priPKCS8); java.security.Signature signature = java.security.Signature.getInstance("SHA256WithRSA"); signature.initSign(priKey); signature.update(content.getBytes("utf-8")); byte[] signed = signature.sign(); return Base64.encodeToString(signed, Base64.DEFAULT); } catch (Exception e) { e.printStackTrace(); } return null; } //获取签名类型 public static String getSignType() { return "RSA2"; } //获取当前时间戳 public static String getCurrentTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); return sdf.format(new Date()); } //生成唯一的支付订单号 public static String getOutTradeNo() { SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); String key = format.format(date); Random r = new Random(); key += r.nextInt(1000); return key; } //将支付请求参数拼接成字符串 public static String buildOrderParam(Map<String, String> map) { StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> entry : map.entrySet()) { sb.append(entry.getKey()) .append("=") .append(entry.getValue()) .append("&"); } String result = sb.toString(); return result.substring(0, result.length() - 1); } ``` 以上就是Java实现支付宝App支付的基本步骤和代码示例。需要注意的是,支付宝SDK的使用可能会涉及到支付宝的服务协议和隐私协议,开发者应该仔细阅读并遵守相关规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值