赞
踩
环境如下
Version | |
---|---|
手机 | 安卓 |
支付平台 | 支付宝 |
SpringBoot | 3.2.1 |
alipay-sdk-java | 4.38.200.ALL |
系统处于开发阶段时,无需营业执照,无需任何费用,沙箱模拟网站在线完整支付流程。
参考资料如下:
有一个在线网站,可以为商品生成支付二维码,手机支付宝扫码,支付。
支付流程大体如下:
获取支付结果有两种方法
主动查询
。在顾客支付后再查询方可得到正确的结果,然而这个时机是无法确定的。被动接收
。顾客支付后,支付宝服务器向微服务发送消息通知。
注册支付宝开放平台
https://openhome.alipay.com/
来到控制台
下滑找到沙箱
https://openhome.alipay.com/develop/manage
或者点这里进入沙箱环境
https://openhome.alipay.com/develop/sandbox/app
下载支付宝沙箱版
到手机
下载软件
https://hsk.oray.com/download
本文选择的是贝锐花生壳
,会赠送一个域名。
添加映射
HTTPS
ip:port
:order微服务的地址端口。
这样之后,谁往https://5m34y83626.vicp.fun/orders/receivenotify
发送请求,就相当于往order微服务的/orders/receivenotify
这个端点发送请求。
参考这篇文章
同一Wifi下允许手机访问电脑(win10)
主要目的就是要知道,手机通过什么ip
可以访问到电脑。本文是192.168.0.102
,所以访问192.168.0.102:63030
就相当于访问到了order微服务
。
<!-- 支付宝SDK --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.38.200.ALL</version> </dependency> <!--生成二维码--> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.3</version> </dependency>
server:
servlet:
context-path: /orders
port: 63030
pay:
#扫描二维码得到url
qrcodeurl: http://???:63030/orders/requestpay?payNo=%s
alipay:
APP_ID: ???
APP_PRIVATE_KEY: ???
ALIPAY_PUBLIC_KEY: ???
???
填充分别为
在同一局域网中手机访问电脑的ip
沙箱环境->沙箱应用->应用信息->基本信息
沙箱环境->沙箱应用->应用信息->开发信息->应用私钥
沙箱环境->沙箱应用->应用信息->开发信息->支付宝公钥
package com.xuecheng.orders.config; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import com.xuecheng.base.utils.EncryptUtil; import jakarta.servlet.ServletOutputStream; import org.apache.commons.lang3.StringUtils; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.HashMap; /** * @author mumu * @version 1.0 * @description 二维码生成工具 * @date 2024/02/16 14:56 */ public class QRCodeUtil { /** * 生成二维码 * * @param content 二维码对应的URL * @param width 二维码图片宽度 * @param height 二维码图片高度 * @return */ public String createQRCode(String content, int width, int height) throws IOException { String resultImage = ""; //除了尺寸,传入内容不能为空 if (!StringUtils.isEmpty(content)) { ServletOutputStream stream = null; ByteArrayOutputStream os = new ByteArrayOutputStream(); //二维码参数 @SuppressWarnings("rawtypes") HashMap<EncodeHintType,<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。