支付宝支付接入

支付宝沙箱模式:

https://docs.open.alipay.com/200/105311

支付报提供了沙箱模式给广大开发者,可以在沙箱模式下测试好了在使用正式环境

 1引入依赖

 <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.8.62.ALL</version>
        </dependency>

 2创建一个记录重要属性的类:下面的属性需要去支付宝应用平台设置,活着沙箱模式设置

public class AlipayConfig_copy {
    // 1.商户appid
//    个人测试
//    public static String APPID = "2019063065717235";

    //2.私钥 pkcs8格式的
//    public static String RSA_PRIVATE_KEY ="MIIEvQIBADACUCWbz6cmKASbx70jxyAy1evdPlAt2unDE6fsHKvYkTJYADK/Fppu+S2az6yqiMIMGZ+U1N4nXS2CZAe5YkBiiMVQfNa4c9pvdTbLOtIr3k6HN0TkEPAn+swDX04oXIyi9ysGRcW463uiVTGUfJAK0f7nhpG9VEiH2Ce2zWdrLp6z1AgMBAAECggEAWujkuulxpmqkOxKWEjPRYDjS9T+CYhncIUrBiwyj6LtHFDI/ohr+bsFyc1EVB46GwBWieBHEXAt/ffKMyM+ZH1pYD160O3oiNMmGo1AMN0gNo3y8ILtJXx6CysuVXpTSZwm5BfnlwlzX1u/evNBMp45Y5ruMEI9TG6VG0iEfszifz0hVOjO7P4lpJZWfuliDk6DKrXV2x4IygP9dYapImioDKNsLMpFKnzjrcbOhwj4Jq7v1dtXako/98XNv9nzOtT5wCtYiEsZjLFV/0LlxH6K4q8y0VLUKR0yZtyFTZ/FzjD/H1yhfNwKD8r3fv9gdbDBknG6BKC8IhwsFJME9wQKBgQDGYtkWNRZwyCln8MqU3k20hr/+kWlu13WMRdxkjKMRYmhMRHYfY0mZqnSpR3ioZvnXWMybnJbDGDEYvym7o9joYc91MfEVdqlfa1FzF2ibZD6KEDHOTZen8MLGVoabP8xFCVgYAhtEL3bH0blQanwLPXYMUMqT923jmMv+pIWHCQKBgQC08Rn/lCZUQ8U1a6nGEZGyfHQxDlVbKchiWTuWfZOAUsW/MvjpTQnLfdHHeyNRdad12lwBbpvIsxWi312ClvPhorzwC29LIlQJoGEtKp3lyW5Kd1C2U79/PkoUc8BD7pVIKiNQRoYgDro1DRuJqJhGG068ZdpTKa/PHnkb4tgljQKBgQCjMLDOucDJ6X1WCRc7ulpFRAsvR0JpcUc6qkUPWTjSlhahljdsvmnOxA7PKQGx1XNzl5JH91l1BrNsXePgfHlzPvI+v2RHeaL94PPRLtJX8PAY9hViVSWJel1eddKoZqSLrZIPvbvcLQcSfAxqgA2l2Vr/6n2ZlhGJBSnZQFCusQKBgA9et6WlMQhRZWwfRCGmFmlB9yC/pfKDfxkTmWM0MZZh8ZhHPSucNqvJeUtno11lEB+Lt+sLOUJ4K+tU6/2O0xKkn0YIwqBwPxE+RWLvzs/ZJ3w93GZQgODPKr3IA1oB5z5lDfDgvL32YkzlWyR7ZMv3v91zDXOpA90lKoZ64391AoGASrNhwDUb75QSO9Awrwel3NRqdeULqRrBVV4hgj1It5K4FNY+JZIDGKLgEC+yRLA8XwCxplM963vlog5X86Q0AqtXMFv4QQcPvCHA0jIalYEBAVYL5WZaHxtbbB9Gj/ne4MCwovaw+buGvRmEQTaud3iHgBibYXqFOF0UnVcaUiE=";
    // 3.支付宝公钥
//    public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BALK+ff25orUZgcw3TBGxHJ/L40DnwbXeo8kX+UVxzIeJM7C9PmEs7bCFB+1slxmN/a6QIDAQAB";
    // 4.服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String notify_url = "http:/xxxxxxx";

    //5.页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址
    public static String return_url = "http://www.xxx.com/alipay/return_url.do";

    // 6.请求支付宝的网关地址
    public static String URL = "https://openapi.alipaydev.com/gateway.do";
//    public static String URL = "https://openapi.alipay.com/gateway.do";
    //沙盒环境https://openapi.alipaydev.com/gateway.do
    //正式环境https://openapi.alipay.com/gateway.do
    // 7.编码
    public static String CHARSET = "UTF-8";

    // 8.返回格式
    public static String FORMAT = "json";

    // 9.加密类型
    public static String SIGNTYPE = "RSA2";

}

3创建支付宝订单

  public String createZfbOrder(String userId,String amount) {
        //订单号
        String outTradeNo = UUID.randomUUID().toString().replaceAll("-", "");
        //金额
        //实例化客户端
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID, AlipayConfig.RSA_PRIVATE_KEY, "json", AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
//      对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
        model.setBody("充值");
//      商品的标题/交易标题/订单标题/订单关键字等。
        model.setSubject("充值有福币");
//      商户网站唯一订单号
        model.setOutTradeNo(outTradeNo);
//      该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
//      注:若为空,则默认为15d。
        model.setTimeoutExpress("30m");
//      订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
        model.setTotalAmount(amount);
//      固定值
        model.setProductCode("QUICK_MSECURITY_PAY");
//      商品主类型:0—虚拟类商品;1—实物类商品 虚拟类商品不支持使用花呗渠道
        model.setGoodsType("0");
//优惠参数  注:仅与支付宝协商后可用
//      model.setPromoParams("{\"storeIdType\":\"1\"}");
        request.setBizModel(model);
        request.setNotifyUrl(AlipayConfig.notify_url);
        try {
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
      
           
            return response.getBody();

        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        return null;
    }

 4将上面方法返回的东西丢给app 让app让app用支付宝的SDK掉起支付宝App进行支付

5支付后的信息回发送到我们设置的回调地址上

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值