支付宝沙箱测试

支付宝沙箱测试

开发前准备

easy支付官方文档:https://opendocs.alipay.com/open/009ys9
通用版文档:https://opendocs.alipay.com/open/02np94

支付宝沙箱的配置

注册支付宝开发者账户,进入开发者控制台
https://openhome.alipay.com/platform/developerIndex.htm

沙箱快捷入口:
https://open.alipay.com/develop/sandbox/app

Java集成沙箱支付

下载依赖

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-easysdk</artifactId>
    <version>2.2.0</version>
</dependency>

在 application.yml 里面进行配置:

alipay:
  appId: 
  appPrivateKey: 
  alipayPublicKey: 
  notifyUrl: 

alipay的配置类:AliPayConfig.java

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;

@Data
@Component
@ConfigurationProperties(prefix = "alipay")
public class AliPayConfig {
    private String appId;
    private String appPrivateKey;
    private String alipayPublicKey;
    private String notifyUrl;


    @PostConstruct
    public void init() {
        // 设置参数(全局只需设置一次)
        Config config = new Config();
        config.protocol = "https";
        config.gatewayHost = "openapi.alipaydev.com";
        config.signType = "RSA2";
        config.appId = this.appId;
        config.merchantPrivateKey = this.appPrivateKey;
        config.alipayPublicKey = this.alipayPublicKey;
        config.notifyUrl = this.notifyUrl;
        Factory.setOptions(config);
        System.out.println("=======支付宝SDK初始化成功=======");
    }

}

浏览器打开网址:请求地址+?subject=xxx&traceNo=xxx&totalAmount=xxx
在这里插入图片描述

输入自己的账户名以及密码:

买家账号: jevhtx2637@sandbox.com

登录密码: 111111

支付密码: 111111

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dp1bAkXo-1688302978791)(D:\kin'ne'y\AppData\Roaming\Typora\typora-user-images\image-20230511213930908.png)]

内网穿透:https://natapp.cn/

配置免费的隧道,端口:90:

在natapp 同级目录下创建一个 config.ini

出现这个页面表示成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-glIPnLAk-1688302978792)(D:\kin'ne'y\AppData\Roaming\Typora\typora-user-images\image-20230512104312891.png)]

配置一个拦截器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxSdxCpg-1688302978792)(D:\kin'ne'y\AppData\Roaming\Typora\typora-user-images\image-20230512112948487.png)]

支付宝异步回调,并返回订单页面

``

    @PostMapping("/notify")  // 注意这里必须是POST接口
    public String payNotify(HttpServletRequest request) throws Exception {
        if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) {
            System.out.println("=========支付宝异步回调========");

            Map<String, String> params = new HashMap<>();
            Map<String, String[]> requestParams = request.getParameterMap();
            for (String name : requestParams.keySet()) {
                params.put(name, request.getParameter(name));
                // System.out.println(name + " = " + request.getParameter(name));
            }

            String tradeNo = params.get("out_trade_no");
            String gmtPayment = params.get("gmt_payment");
            String alipayTradeNo = params.get("trade_no");
            // 支付宝验签
//            if (Factory.Payment.Common().verifyNotify(params)) {
                // 验签通过
                System.out.println("交易名称: " + params.get("subject"));
                System.out.println("交易状态: " + params.get("trade_status"));
                System.out.println("支付宝交易凭证号: " + params.get("trade_no"));
                System.out.println("商户订单号: " + params.get("out_trade_no"));
                System.out.println("交易金额: " + params.get("total_amount"));
                System.out.println("买家在支付宝唯一id: " + params.get("buyer_id"));
                System.out.println("买家付款时间: " + params.get("gmt_payment"));
                System.out.println("买家付款金额: " + params.get("buyer_pay_amount"));

                // 更新订单状态已支付、并返回订单页面
            userService.updateOrder(tradeNo);
            }
//        }
        return "success";
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值