支付系统(pc端扫码支付)

一、支付方式选择

对接的API文档:

可选方式支付方式 

     扫码付:出示付款码或者用户扫码付款

     APP支付:在APP中唤起支付宝

     手机网站支付:在移动端网页中唤起支付宝 App 或支付宝网页

     电脑网站支付:在PC端唤起支付宝App或者网页登录支付宝账户

     刷脸付:需硬件支持

     商家扣款:类似每月会员扣款

     预授权支付:冻结对应额度,交易完成后给商家

     JSAPI支付:小程序

在里选择手机扫码支付方式,用户点击下单后,页面返回支付二维码,用户扫码支付跳转

二、代码调用

      简易版SDK

      通用办SDK

测试我们选择简易版SDK,通用版官网有API调用示例

1、引入依赖

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

下面是业务请求参数,必选必须调用,否则会引起错误,非必选根据需求填写

2、代码

 我这里仅填写了必要参数,调用成功后将返回

@Service
public class textpay {
        public String pay() throws AlipayApiException {
            AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());

            // 构造请求参数以调用接口
            AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
            AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();

            // 设置商户订单号
            model.setOutTradeNo("2015033320011001");

            // 设置订单总金额
            model.setTotalAmount("19888.88");

            // 设置订单标题
            model.setSubject("小米19 1T,64G");


            // 设置卖家支付宝用户ID


            request.setBizModel(model);
            // 第三方代调用模式下请设置app_auth_token
            // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");

            AlipayTradePrecreateResponse response = alipayClient.execute(request);
            String body  = response.getBody();
            JSONObject jsonObject = JSONObject.parseObject(body);
            String qurl = jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString();
            System.out.println(response.getBody());
            if (response.isSuccess()) {
                System.out.println("调用成功");
                return qurl;
            } else {
                System.out.println("调用失败");
                // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
                String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
                System.out.println(diagnosisUrl);
            }
            return "s";
        }

    private static AlipayConfig getAlipayConfig() {
        String privateKey  = "";//填写密钥建议放到application.yml配置文件中,或设置到系统环境。
        String alipayPublicKey = "";
        AlipayConfig alipayConfig = new AlipayConfig();
        alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do");
        alipayConfig.setAppId("9021000143680943");
        alipayConfig.setPrivateKey(privateKey);
        alipayConfig.setFormat("json");
        alipayConfig.setAlipayPublicKey(alipayPublicKey);
        alipayConfig.setCharset("UTF-8");
        alipayConfig.setSignType("RSA2");
        // alipayConfig.notify();
        return alipayConfig;
    }
}

3、正常返回响应我们get返回数据中的“qr_code”用于生成二维码(上述代码中包含)

4、我们将获取的数据返回前端看效果

这里是用沙箱环境做的测试

5、具体前后端代码:https://github.com/jiunianyi/pay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值