前提条件
这是必要条件!!! 这是必要条件!!! 这是必要条件!!! 开通当面付,个人、企业账号均可!!!
演示
获取订单点击,然后扫码支付
支付成功后就会响应支付成功
第一部分,需要准备一个域名 域名是一个网站的入口与标识,域名需要购买 一般从阿里云(万网)、腾讯云、京东云、Godaddy等网站购买。域名需要自己想一个好的名称,一旦选中变不可更改。可以选择.top这样的三字符结尾的域名,。
应用申请开通和配置
接下来介绍应用的创建和配置,一定要仔细哦!!!
应用创建
首先进入支付宝开放平台,进入控制台,创建一个应用,大概1个工作日内就会审核
把这几个必填项填写,然后确认创建,注意名字要清晰,应用图标要有一定的可识别性,不然不给过,应用类型选网页应用
应用配置
创建好后,进入产品详情页面,点击产品绑定,然后去绑定
如何注册个人网站? 个人网站也跟普通 网站一样的,需要三样东西,一是域名,胆在域名注册商很多,可以用于个的域名也很多,除了国内的域名我,其他的几乎都可以用于个人注册,.name这个域名后缀是专用个性人用的域名。二是虚拟空间,这个是存。
要确认是开通状态哦,如果没有开通需要开通哦,看上面的 前提条件
然后需要配置密钥,点击下图中侧边栏中的 开发设置,需要配置的是 接口加签方式(证书/密钥)
接口加签方式(证书/密钥):配置支付宝开放平台会引导你下载安装密钥生成工具,生成一个应用公钥和应用私钥,私钥一定要保管好,不要泄露,保存到本地,到时候配置在服务器上,然后把应用公钥配置在开放平台上,就算配置完成了,支付宝就会给到你一个支付宝公钥,接下来你一共有三个密钥,支付宝公钥、应用公钥、应用私钥,这三个一定要分清,接下来文章介绍的所需要用到的密钥只有这三个,清一定要分清!!!
代码开发
后端实例
SDK集成
首先获取相应的SDK,SDK下载页面(官方):opendocs.alipay.com/open/54/103…
我这里以Maven的方式集成,另外我集成了zxing,用于生成支付二维码使用
<!--alipay SDK--><dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.35.9.ALL</version></dependency><!-- zxing --><dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.5.1</version></dependency>复制代码
Controller实例
生成付款二维码,我标明了详细的注释,可以直接看!
由于涉及到公钥、私钥等信息,这些部分我都用了 **************来表示。
记得替换哦!!!
记得替换哦!!!
1.点击cdd首页cdd/ 中上的“立即申请20MB免费空间”,或者单击页面右上方的“注册”2.在认真阅读网站协议后,单击“我同意”按钮,3.在进入“新用户注册”页面后填写一些基本的个人信息,注意申请个人网站默认状态是没有选中的, 如果你要。
记得替换哦!!!
替换成你自己的!!!
package com.demo.pay;import com.alibaba.fastjson.JSONObject;import com.alipay.api.AlipayApiException;import com.alipay.api.AlipayClient;import com.alipay.api.DefaultAlipayClient;import com.alipay.api.internal.util.AlipaySignature;import com.alipay.api.request.AlipayTradePrecreateRequest;import com.alipay.api.request.AlipayTradeQueryRequest;import com.alipay.api.response.AlipayTradePrecreateResponse;import com.alipay.api.response.AlipayTradeQueryResponse;import org.springframework.http.MediaType;import org.springframework.web.bind.annotation.*;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.util.HashMap;import java.util.Map;/** * @author ThirdGoddess * @version 1.0.0 * @time 2022/12/22 14:37 * @desc AliPay当面付Demo */@RestController@RequestMapping(&34;)public class AliPayController {//模拟一个用户的支付状态private boolean userPayState = false;//==================================================================================================================//这里都是固定的//支付宝网关地址private static final String SERVER_URL = &34;GBK&34;json&34;RSA2&34;**************&34;**************&34;**************&34;/getQr&34;http://**************.com/pay/payNotification&34;pay&34;out_trade_no&34;total_amount&34;subject&34;demo&34;调用成功&34;调用失败&34;jpeg&34;调用失败&34;payNotification&34;&34;,&34;Key = &34;,Value = &34;验签成功&34;out_trade_no&34;trade_no&34;TRADE_SUCCESS&34;TRADE_FINISHED&34;success&34;验签失败&34;fail&34;fail&34;WAIT_BUYER_PAY&34;TRADE_CLOSED&34;TRADE_SUCCESS&34;TRADE_FINISHED&34;out_trade_no&34;trade_no&34;alipay_trade_query_response&34;trade_status&34;searchOrder&34;支付成功了&34;你还没有支付哦");}}/** * 响应给前端的实体 */static class OrderStateEntity {private int code;private String msg;public OrderStateEntity(int code,String msg) {this.code = code;this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}}复制代码
用户支付后的回调
响应值
描述
异步是否重试发送
fail
消息获取失败
重试
success
消息获取成功
不重试
前端代码实例
这样建立个人网站:1、首先要去注册一个域名,域名就是你网站的门牌号,域名注册大约花50元左右。注意,域名最好www开头哦。国际域名。2、购买网站空间(虚拟主机),网站空间新手建议去淘宝买,便宜。不用花太多钱。用一点。
源码
Github:github.com/ThirdGoddes…