支付小程序公钥私钥授权和支付以及证书模式授权和支付

 config   证书模式支付配置类

package com.ggba8.ggba.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class InitAlipayConfig {

    @Value("${alipay.shop.private_key}")
    private String privateKey;

    @Value("${alipay.shop.gateway_url}")
    private String serverUrl;

    @Value("${alipay.shop.appid}")
    private String appId;
    @Value("${alipay.shop.app_cert_path}")
    private String appCertPath;
    @Value("${alipay.shop.alipay_public_cert_path}")
    private String alipayPublicCertPath;
    @Value("${alipay.shop.root_cert_path}")
    private String rootCertPath;

    @Bean
    public com.alipay.api.AlipayConfig getAlipayConfig() {
        com.alipay.api.AlipayConfig alipayConfig = new com.alipay.api.AlipayConfig();
        alipayConfig.setPrivateKey(privateKey);
        alipayConfig.setServerUrl(serverUrl);
        alipayConfig.setAppId(appId);
        alipayConfig.setCharset("UTF-8");
        alipayConfig.setSignType("RSA2");
        alipayConfig.setFormat("json");
        alipayConfig.setAppCertPath(appCertPath);
        alipayConfig.setAlipayPublicCertPath(alipayPublicCertPath);
        alipayConfig.setRootCertPath(rootCertPath);
        return alipayConfig;
    }
}

小程序支付业务(证书授权模式)

类型是JSPAI_PAY

  @Override
    public String alipay(LogPay log,String passbackParams,String code) throws Exception {
        // 构造请求参数以调用接口
        AlipayTradeCreateRequest request = new  AlipayTradeCreateRequest();
        AlipayTradeCreateModel model = new AlipayTradeCreateModel();//支付宝订单格式
        request.setReturnUrl(return_url);
        request.setNotifyUrl(notify_url);

        CertAlipayRequest certAlipayRequest = new CertAlipayRequest();//验签
        certAlipayRequest.setServerUrl(alipayConfig.getServerUrl());

        certAlipayRequest.setAppId(alipayConfig.getAppId());  //APPID 即创建应用后生成,详情见创建应用并获取 APPID

        certAlipayRequest.setPrivateKey(alipayConfig.getPrivateKey());  //开发者应用私钥,由开发者自己生成
        certAlipayRequest.setFormat("json");  //参数返回格式,只支持 json 格式
        certAlipayRequest.setCharset("UTF-8");  //请求和签名使用的字符编码格式,支持 GBK和 UTF-8
        certAlipayRequest.setSignType("RSA2");  //商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐商家使用 RSA2。
        certAlipayRequest.setCertPath(alipayConfig.getAppCertPath()); //应用公钥证书路径(app_cert_path 文件绝对路径)
        certAlipayRequest.setAlipayPublicCertPath(alipayConfig.getAlipayPublicCertPath()); //支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径)
        certAlipayRequest.setRootCertPath(alipayConfig.getRootCertPath());  //支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径)

        AlipayClient client = new DefaultAlipayClient(certAlipayRequest);

        com.alibaba.fastjson.JSONObject json =  alipayClientUtils2.getAuthToken(code);
        if(json != null){
            String aliOpenID = json.getString("user_id");
            model.setBuyerId(aliOpenID);
            }
        model.setOutTradeNo(log.getOrderId()); //订单号
        if(debug){
            model.setTotalAmount("0.01");
        }else{
            model.setTotalAmount(log.getMoneyInit().floatValue()+""); //金额
        }
        model.setSubject(log.getTitle()); //订单名
        model.setBody(log.getTitle()); //订单描述
        // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值