支付宝支付
程序员文章站
2022-04-11 13:53:51
...
1.准备步骤
相关工具
1、内网穿透工具 natapp (用户支付结果通知异步回调)
2、AlipayDevelopmentAssistant 阿里支付签名工具
3、支付宝沙箱客户端 支付宝支付测试使用
支付宝-当面付
阿里支付宝DEMO下载:https://docs.open.alipay.com/399/106844/,支付宝支持丰富的支付方式,这里我们选择使用当面付-支持二维码&条形码的支付,这是目前的主流。
- 当面付流程
1、获取二维码
2、扫码支付
3、等待支付宝回调
4、修改订单状态
5、定期对账
DEMO文档结构目录
-TradePayDemo - 支付宝当面付DEMO
-TradePaySDK - 支付宝SDK
-readme.txt - 文档结构目录说明
-当面付调用流程说明文档(java).docx
相关链接配置
SDK-maven依赖地址说明:https://docs.open.alipay.com/54/103419/
当面付产品功能说明:https://docs.open.alipay.com/194
当面付DEMO:https://docs.open.alipay.com/54/104506/
沙箱环境说明:https://docs.open.alipay.com/200/105311/
支付加密签名工具:https://docs.open.alipay.com/291/
https://opendocs.alipay.com/open/291/105971#LDsXr
签名参数说明:https://docs.open.alipay.com/204/105465
支付宝主动异步通知说明:https://docs.open.alipay.com/270/105902/
2.程序编写
pom文件配置
<!-- 支付宝支付 -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.3.87.ALL</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.11</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- 支付宝依赖结束 -->
静态资源访问虚拟路径
@Configuration
public class ResourceConfig implements WebMvcConfigurer {
@Autowired
private QrCodeProp qrCodeProp;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String os = System.getProperty("os.name");
if(os.toLowerCase().startsWith("win")){ //windows系统
/** QrCode图片存储路径 */
registry.addResourceHandler(qrCodeProp.getHttpBasePath()
+"/**")
.addResourceLocations("file:" + qrCodeProp.getStorePath() + "/");
}else{ //linux或者mac
}
}
}
源码地址
https://gitee.com/h455952294_admin/alipay_payment.git
测试用例
- 1.生成订单
//url地址
http://localhost:8088/order/qrCode
// 请求参数
{
"payAmount":299.9,
"itemList":[
{
"productSn":"2920129293",
"productName":"华为P40 Pro手机壳",
"productPrice":299.9,
"productQuantity":9
}
]
}
// 响应数据
- 支付回调
http://localhost:8088/order/paySuccess
- 查询订单状态
http://localhost:8088/order/queryPayStatus?orderSn=15855452823901363487
上一篇: HTTP简介,http是一个属于应用层的面向对象的协议
下一篇: mysql触发器语法错误问题