支付宝 沙箱 普通公钥模式和公钥证书模式 进行支付测试

1.普通公钥模式

package co.yixiang.aliPay;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.domain.ExtendParams;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;

public class SandBoxPTPublicKeyTest {

    public static void main(String[] args) throws AlipayApiException {
        //商户私钥
        String privateKey="商户私钥比较长";
        //支付宝公钥
        String publicKey="支付宝公钥比较短";
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do","你的沙箱appid",privateKey, "JSON", "utf-8", publicKey,"RSA2");


        // 创建API对应的request(手机APP版)
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
        AlipayTradeAppPayModel bizModel = new AlipayTradeAppPayModel();
        bizModel.setSubject("测试商品名称"); //商品名称
        bizModel.setBody("测试商品描述"); //商品描述
        bizModel.setOutTradeNo("123456789999"); //商户订单号
        bizModel.setTimeoutExpress("1740m"); //超时时间
        bizModel.setTotalAmount("0.2"); //金额
        bizModel.setProductCode("QUICK_MSECURITY_PAY"); //销售产品码
        ExtendParams extendParams = new ExtendParams();
        extendParams.setSysServiceProviderId("2088931758115950");
        bizModel.setExtendParams(extendParams);


        request.setBizModel(bizModel);
        request.setNotifyUrl("http://127.0.0.1:8008/api/alipay/notify"); //异步通知地址

        // 这里和普通的接口调用不同,使用的是sdkExecute
        AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
        String body = response.getBody();
        System.out.println(body);
    }
}

2.公钥证书模式

 

 

package co.yixiang.aliPay;

import co.yixiang.modules.yinsheng.constants.YinShengConstant;
import co.yixiang.modules.yinsheng.service.YSDfService;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.domain.ExtendParams;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;

public class SandBoxZSPublicKeyTest {

    public static void main(String[] args) throws AlipayApiException {
        String appCert = SandBoxZSPublicKeyTest.class.getResource("/aliPayCert/appCertPublicKey_2021000119666184.crt").getPath().toString();
        String alipayCert = SandBoxZSPublicKeyTest.class.getResource("/aliPayCert/alipayCertPublicKey_RSA2.crt").getPath().toString();
        String alipayRootCert = SandBoxZSPublicKeyTest.class.getResource("/aliPayCert/alipayRootCert.crt").getPath().toString();

        String privateKey="应用私钥,比较长";

        CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
        certAlipayRequest.setServerUrl("https://openapi.alipaydev.com/gateway.do");
        certAlipayRequest.setAppId("appid");
        certAlipayRequest.setPrivateKey(privateKey);
        certAlipayRequest.setFormat("JSON");
        certAlipayRequest.setCharset("utf-8");
        certAlipayRequest.setSignType("RSA2");
        certAlipayRequest.setCertPath(appCert);
        certAlipayRequest.setAlipayPublicCertPath(alipayCert);
        certAlipayRequest.setRootCertPath(alipayRootCert);
        DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);


        // 创建API对应的request(手机APP版)
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
        AlipayTradeAppPayModel bizModel = new AlipayTradeAppPayModel();
        bizModel.setSubject("测试商品名称"); //商品名称
        bizModel.setBody("测试商品描述"); //商品描述
        bizModel.setOutTradeNo("123456789999"); //商户订单号
        bizModel.setTimeoutExpress("1740m"); //超时时间
        bizModel.setTotalAmount("0.5"); //金额
        bizModel.setProductCode("QUICK_MSECURITY_PAY"); //销售产品码
        ExtendParams extendParams = new ExtendParams();
        extendParams.setSysServiceProviderId("2088931758115950");
        bizModel.setExtendParams(extendParams);


        request.setBizModel(bizModel);
        request.setNotifyUrl("http://127.0.0.1:8008/api/alipay/notify"); //异步通知地址

        // 这里和普通的接口调用不同,使用的是sdkExecute
        AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
        String body = response.getBody();
        System.out.println(body);
    }
}

测试 返回的信息支付能拉起支付宝,可参考这一篇文章

客户端调试工具使用教程-阿里云开发者社区

例子中的两种获取方式,都可以拉起沙箱支付宝app进行支付

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值