简介:本文详细介绍了支付宝当面付接口的申请、配置、开发及测试全流程,帮助开发者与企业用户快速接入支付宝支付能力,实现线下收款场景的数字化升级。
支付宝当面付是支付宝为线下商户提供的面对面收款解决方案,支持条码支付、扫码支付、声波支付等多种形式,广泛应用于零售、餐饮、交通等行业。其核心优势在于:
步骤1:登录支付宝开放平台
访问支付宝开放平台,使用企业账号或个人账号登录。
步骤2:创建应用
步骤3:申请当面付功能
步骤4:审核与签约
openssl genrsa -out rsa_private_key.pem 2048 # 生成私钥openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem # 生成公钥
<!-- Maven依赖 --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.35.0.ALL</version></dependency>
AlipayClient时需传入APPID、商户PID、密钥等:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APPID,PRIVATE_KEY,"json","UTF-8",ALIPAY_PUBLIC_KEY,"RSA2");
场景1:被扫支付(商户扫用户条码)
alipay.trade.pay接口,关键参数:
AlipayTradePayRequest request = new AlipayTradePayRequest();request.setBizContent(JSON.toJSONString(new HashMap<String, Object>() {{put("out_trade_no", "ORDER_" + System.currentTimeMillis()); // 商户订单号put("scene", "bar_code"); // 场景:条码支付put("auth_code", userBarcode); // 用户条码put("subject", "测试商品"); // 商品标题put("total_amount", "0.01"); // 金额(元)}}));AlipayTradePayResponse response = alipayClient.execute(request);
场景2:主扫支付(用户扫商户二维码)
alipay.trade.precreate生成支付二维码:
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();request.setBizContent(JSON.toJSONString(new HashMap<String, Object>() {{put("out_trade_no", "ORDER_" + System.currentTimeMillis());put("total_amount", "0.01");put("subject", "测试商品");put("store_id", "STORE_001"); // 门店编号(可选)}}));AlipayTradePrecreateResponse response = alipayClient.execute(request);String qrCodeUrl = response.getQrCode(); // 获取二维码URL
https://openhome.alipay.com/platform/appDaily.htm),可模拟真实交易流程;283612837123871238)进行被扫支付测试。https://yourdomain.com/alipay/notify),接收支付宝回调;
boolean signVerified = AlipaySignature.rsaCheckV1(params, // 回调参数ALIPAY_PUBLIC_KEY,"UTF-8","RSA2");if (signVerified && "TRADE_SUCCESS".equals(params.get("trade_status"))) {// 更新订单状态为已支付}
out_trade_no全局唯一;优化建议:
本文通过步骤拆解与代码示例,系统阐述了支付宝当面付接口的申请、开发及测试全流程。开发者需严格遵循支付宝规范,合理设计业务逻辑,方可实现高效、安全的线下支付服务。实际开发中,建议结合支付宝官方文档(当面付接口文档)进行调试,确保功能稳定性。