建设公司网站有什么好处,网站的内链建设,住房和城乡建设部监理工程师网站,郑州最好的男科医院哪家好一、支付宝沙箱环境介绍
沙箱环境是支付宝开放平台为开发者提供的安全低门槛的测试环境#xff0c;开发者在沙箱环境中调用接口无需具备所需的商业资质#xff0c;无需绑定和开通产品#xff0c;同时不会对生产环境中的数据造成任何影响。合理使用沙箱环境#xff0c;可以…一、支付宝沙箱环境介绍
沙箱环境是支付宝开放平台为开发者提供的安全低门槛的测试环境开发者在沙箱环境中调用接口无需具备所需的商业资质无需绑定和开通产品同时不会对生产环境中的数据造成任何影响。合理使用沙箱环境可以让研发流程与商业流程并行降低联调资损风险加速项目的交付。更为详细的说明可以看官方文档小程序文档 - 支付宝文档中心 二、沙箱环境准备
2.1 注册入驻支付宝开放平台
登录支付宝开放平台支付宝开放平台找到开发接入入驻为开发者。 2.2 配置沙箱环境
进入到开发者的控制台找到最下方的开发者工具推荐 点击沙箱。 2.3 创建沙箱应用
获取支付参数信息
创建沙箱应用后需要拿到3个参数appId应用私钥支付宝公钥用于对接支付接口使用。 买家和商家账户信息
在沙箱账号中可以看到买家和商家的账号信息以及账号余额。当支付时填写买家对应信息支付成功会看到买家余额减少卖余额增加。 三、Java实现支付宝支付
支付的整体逻辑是引入sdk依赖配置对应的支付参数调用支付接口支付等待支付成功后执行回调接口逻辑。 如果希望看到详细说明也可参看官方文档小程序文档 - 支付宝文档中心下面主要是简化业务步骤记录核心关键步骤。
3.1 引入SDK的Maven依赖
!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk --
dependencygroupIdcom.alipay.sdk/groupIdartifactIdalipay-easysdk/artifactIdversion2.2.2/version
/dependency 3.2 配置支付参数 3.3 编写支付属性配置类
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;Component
ConfigurationProperties(prefix alipay)
Data
public class AlipayConfig {// 应用Idprivate String appId;// 应用私有 private String appPrivateKey;// 支付宝公钥 private String publiceKey;// 回调接口路径 private String notifyUrl;PostConstructpublic void init(){Config config new Config();// 基础配置config.protocol https;config.gatewayHost openapi-sandbox.dl.alipaydev.com;// 新版沙箱网关地址config.signType RSA2;// 业务配置config.appId this.appId;config.merchantPrivateKey this.appPrivateKey;config.alipayPublicKey this.publiceKey;config.notifyUrl this.notifyUrl;// 将配置信息 添加到相应的工厂类Factory.setOptions(config);System.out.println(支付宝初始化配置完成);}
} 3.4 编写支付接口和支付回调接口
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;RestController
public class TestController {/*** 订单支付接口 核心是调用支付宝的 Factory.Payment.Page().pay() 方法* param subject 支付对象信息* param outTradeNo 订单号* param totalAmount 订单金额* return*/GetMapping(/pay)public String pay(String subject, String outTradeNo, String totalAmount) {AlipayTradePagePayResponse response;try {response Factory.Payment.Page().pay(subject, outTradeNo, totalAmount, );} catch (Exception e) {throw new RuntimeException(e);}return response.getBody();}/*** 支付回调接口如果支付成功支付宝将会请求此接口将成功信息返回* param request* return* throws Exception*/PostMapping(/notify)public String notify(HttpServletRequest request) throws Exception {String tradeStatus request.getParameter(trade_status);if (tradeStatus.trim().equals(TRADE_SUCCESS)) {MapString, String param new HashMap();MapString, String[] parameterMap request.getParameterMap();for (String name : parameterMap.keySet()) {param.put(name, request.getParameter(name));}// 验证请求的有效性if (Factory.Payment.Common().verifyNotify(param)) {System.out.println(通过支付宝的验证);String orderIdStr param.get(out_trade_no);System.out.println(orderIdStr orderIdStr);}else {System.out.println(支付验证不通过);}}return success;}
}四、测试
4.1 下载内网穿透工具
支付完成后支付宝需要回调我们的接口将支付成功的信息给我们。因此需要将回调接口配置到外网环境这里使用花生壳内网工具实现。
下载地址花生壳客户端官方下载 - 贝锐花生壳官网 双击exe安装包一直下一步即可安装完成。 安装成功后新增映射配置对应ip和端口号 4.2 访问测试
传入对应参数访问pay接口即跳转到支付界面 输入沙箱环境的买家账号和密码支付 支付成功后支付宝会回调我们提供好的接口路径 查看买家和商家余额