Java简单搭建免签个人支付宝当面付收款接口,无需挂APP,官方接口无风险

本文介绍了如何使用Java搭建个人支付宝当面付接口,适合没有公司和营业执照的个人开发者。免签功能允许单笔收款≤2000元,单日收款≤20000元,只需店铺照片即可开通。提供了核心代码示例及回调接口的编写,并给出了前端调用的简单说明。
摘要由CSDN通过智能技术生成

近来在开发个人站的时候,遇到支付问题,对于个人站长而言,没有公司,也没有营业执照,免签个人支付系统尤为重要,网上也有很多,这里简单介绍Java搭建支付宝当面付接口功能。

个人能力有限,仅供个人参考,勿用到生产环境
测试及下载项目源码 测试站点

个人用户可用,营业执照是选填项,无需企业/营业资质(懂得都懂~
当面付开通很简单,直接百度一张店铺照片就可以开通

支付宝当面付限制(无营业执照):
单笔收款 ≤2000元,单日收款 ≤20000元,不区分借记或贷记渠道。


下面简单来看下Java服务器端代码:
用到的官方Java版sdk jar包自行下载

core.java 调用支付宝官方接口核心功能
很简单,注释很清楚,不过多解释,具体看代码

public class core {
	AlipayClient client = null;
	/**支付宝回调的接口地址*/
    private static String aliNotifyUrl = "yourweb/pay/alinotify";
	
	public core() {
		getConfig();
	}


	/**
	 * 创建付款订单
	 */
	public HashMap<String, String> createOrder(double num,String title){
		if(num<=0) return null;
		HashMap<String, String> rs = new HashMap<>();
		AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
		//生成不重复的商家订单号(我用的时间+随机数)
		String h=new Date().getTime()+Utils.randomNum(10, 99)+"";
		
		 AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();
        model.setOutTradeNo(h);//订单号(保证不重复)
        model.setTotalAmount(num+"");//订单金额
        model.setSubject(title);//标题(关键字)不可用特殊标点
        model.setQrCodeTimeoutExpress("10m");
        request.setBizModel(model);
        request.setNotifyUrl(aliNotifyUrl);//应用网关(异步通知)

		AlipayTradePrecreateResponse response = null;
		try {
			response = client.execute(request);
		} catch (AlipayApiException e) {e.printStackTrace();}
		
		if(response.isSuccess()){
			
			//订单存入数据库 根据自己需求建表存入(此处我使用的自己封装的SQL工具)
			DBUtil db = new DBUtil();
			int i = db.execUpdate("insert into _orders(out_trade_no,otitle,onum,qrcode) values("+ response.getOutTradeNo()+",?,"+num+",?)", new String[]{title,response.getQrCode()});
			if(i==1){
				rs.put("code", "1");
				rs.put("qrcode", response.getQrCode());
				//将qrcode转为base64格式图片
				rs.put("qrimg", ImgUtils.QrImgB64(response.getQrCode(), 300));
				rs.put("out_trade_no", response.getOutTradeNo());
			}else rs.put("code", "-1");
		} else {
			rs.put("code", "-1");
		}
		
		return rs;
		
	}
	
	/**查询订单状态*/
	public Map<String, Object> queryOrder(String orderId){
        if(orderId==null||orderId.tr
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值