聊一聊如何接入支付宝

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/81676606 说起来做一个支付系统最基础的就是支付功能了,对于我们来说除了各大银行以外微信和支付宝也是必选项,毕竟人家这个庞大的用户群在那里摆着呢,你不用那不是想着放弃这些用户么。
版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/81676606

说起来做一个支付系统最基础的就是支付功能了,对于我们来说除了各大银行以外微信和支付宝也是必选项,毕竟人家这个庞大的用户群在那里摆着呢,你不用那不是想着放弃这些用户么。

今天我们就来看一看对于我们开发者来说如何快速的进行接入。

首先我们要做的就是先去蚂蚁金服开放平台注册账号https://open.alipay.com。这里需要注意的是如果我们是以个人注册的话,是没有办法投入生产使用的,只能是注册企业支付宝去申请才可以。不过呢,对于我们现在学习来说是已经足够了。

创建应用

第一步我们点击导航栏的 开发接入 按钮,找到支付应用。创建一个应用。
应用创建完成后就是补充应用的信息了,相信看着页面的描述你可以做到的,这里就不过多的描述了。不过有一点需要注意,就是我们的支付功能的话可以先选择一个当面付来玩一玩商场里的扫码枪是如何做到的。

使用沙箱账号进行测试

接下来呢,我们要准备测试用的环境了。进入此页面https://openhome.alipay.com/platform/appDaily.htm?tab=info
这里面呢,有一些我们一会需要的信息,比如说APPID,支付宝公钥,支付宝网关等信息。页面持续往下拉,会有一个Android版的沙箱支付宝,先下载下来,登陆信息在左侧导航栏沙箱账号里。

开始搞

前面我们已经把需要准备的东西都准备好了,下面我们就开始开发吧。

引入依赖

有很多教程里面都是直接引入的支付宝相关的jar包,个人感觉这种方式对于我们现在maven的时代还是比较不合适的。所以呢,咱们使用支付宝官方提供的maven依赖

1
2
3
4
5
<dependency>
	<groupId>com.alipay.sdk</groupId>
	<artifactId>alipay-sdk-java</artifactId>
	<version>3.0.0</version>
</dependency>

配置基础信息

创建一个名为 alipay_config.properties的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#加密方式
alipay.signType=RSA2

#字符编码格式
alipay.charset=utf-8

#appid
alipay.appId =xxx

#商户私钥
alipay.appPrivateKey =xxx

#支付宝公钥
alipay.appPublicKey=xxx
#沙箱测试地址
alipay.aliUrl=https://openapi.alipaydev.com/gateway.do

上方几个信息详细你在沙箱里面已经看到了,这里我就不做详细解释了哦

使用@PropertySource在Java类中读取配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Data
@Configuration
@ConfigurationProperties(prefix = "alipay",ignoreUnknownFields = false)
@PropertySource(value = { "classpath:alipay_config.properties" },ignoreResourceNotFound=false)
public class AlipayConfig {

    private String appId;

    private String appPrivateKey;

    private String appPublicKey;

    private String aliUrl;

    private String signType;

    private String charset;

    @Bean
    public AlipayClient alipayClient(){
        return new DefaultAlipayClient(aliUrl,
                appId, appPrivateKey, "JSON", charset, appPublicKey, signType);
    }
}

这个配置方式呢,其实就是一个简单的把配置文件中的属性注入到这个类中的各个属性,然后呢使用一个@Bean的注解把这些配置组合成一个AlipayClient类来放入Spring的容器中进行管理

撸代码

接下来的这个时候其实已经不需要我来讲了。API接口文档在这:https://docs.open.alipay.com/api_1/alipay.trade.pay

大家可以直接参考着搞起来了。我这里给两个简单的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
@Service
public class AlipayService {

    @Autowired
    private AlipayClient alipayClient;


    
    /**
     * 条码支付,声波支付
     */
    public void tradePay(){

        AlipayTradePayRequest request = new AlipayTradePayRequest();
        request.setBizContent("{" +
"\"out_trade_no\":\"20150324450101001\"," + //订单号,全局唯一
"\"scene\":\"bar_code\"," +                //支付方式:条码支付
"\"auth_code\":\"2876323325664394\"," +	//登陆沙箱支付宝,打开付款码得到的一串数字
"\"subject\":\"Iphone6 16G\"," +            //订单标题
"\"total_amount\":888.88," +			    //订单金额
"\"body\":\"Iphone6 16G\"," +
"      \"goods_detail\":[{" +
"        \"goods_id\":\"apple-01\"," +
"\"goods_name\":\"ipad\"," +
"\"quantity\":1," +
"\"price\":2000," +
"\"goods_category\":\"34543238\"," +
"\"body\":\"特价手机\"," +
"\"show_url\":\"http://www.alipay.com/xxx.jpg\"" +
"        }]," +
"\"operator_id\":\"yx_001\"," +
"\"store_id\":\"NJ_001\"," +
"\"terminal_id\":\"NJ_T_001\"," +
"\"extend_params\":{" +
"\"sys_service_provider_id\":\"2088511833207846\"," +
"\"industry_reflux_info\":\"{\\\\\\\"scene_code\\\\\\\":\\\\\\\"metro_tradeorder\\\\\\\",\\\\\\\"channel\\\\\\\":\\\\\\\"xxxx\\\\\\\",\\\\\\\"scene_data\\\\\\\":{\\\\\\\"asset_name\\\\\\\":\\\\\\\"ALIPAY\\\\\\\"}}\"," +
"\"card_type\":\"S0JP0000\"" +
"    }," +
"\"timeout_express\":\"90m\"," +
"\"auth_confirm_mode\":\"COMPLETE:转交易支付完成结束预授权;NOT_COMPLETE:转交易支付完成不结束预授权\"," +
"\"terminal_params\":\"{\\\"key\\\":\\\"value\\\"}\"" +
"  }");
        AlipayTradePayResponse response = null;
        try {
            response = alipayClient.execute(request);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        if(response.isSuccess()){
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
    }
    /**
     * 查询
     * @return
     */
    public void queryOrder(){
        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
        request.setBizContent("{" +
                "\"out_trade_no\":\"20150320010101001\"," +  	 // 系统订单号
                "\"trade_no\":\"2018081421001004570200746674\"" + //支付宝交易订单号
                "  }");
        AlipayTradeQueryResponse response = null;
        try {
            response = alipayClient.execute(request);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        if(response.isSuccess()){
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
    }
}

相信聪明的你已经可以看着文档开启的你的支付之路了。

本文出自http://zhixiang.org.cn,转载请保留。

相关文章
|
移动开发 前端开发 JavaScript
一文讲透支付宝沙箱的基本应用
沙箱环境是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。沙箱为开放的产品提供有限功能范围的支持,可以覆盖产品的绝大部分核心链路和对接逻辑,便于开发者快速学习/尝试/开发/调试。沙箱环境会自动完成或忽略一些场景的业务门槛,例如:开发者无需等待产品开通,即可直接在沙箱环境调用接口,使得开发集成工作可以与业务流程并行,从而提高项目整体的交付效率。......
1552 0
一文讲透支付宝沙箱的基本应用
|
4月前
|
移动开发 前端开发 小程序
毕业设计中使用支付宝沙箱完成在线支付流程(二)
毕业设计中使用支付宝沙箱完成在线支付流程
123 0
毕业设计中使用支付宝沙箱完成在线支付流程(二)
|
4月前
|
JavaScript 前端开发 Java
毕业设计中使用支付宝沙箱完成在线支付流程(一)
毕业设计中使用支付宝沙箱完成在线支付流程
145 0
|
5月前
|
前端开发 Java 测试技术
毕业设计中使用支付宝沙箱完成在线支付流程
毕业设计中使用支付宝沙箱完成在线支付流程
162 0
|
12月前
|
API 数据安全/隐私保护
直播源码平台搭建技术分享之直播短信功能实现
在利用直播源码去开发平台中,直播源码功能技术是开发直播平台的重要技术之一,今天我就为大家分享直播源码平台搭建技术分享直播短信功能实现。
直播源码平台搭建技术分享之直播短信功能实现
|
移动开发 小程序 JavaScript
手把手教你接入微信支付
手把手教你接入微信支付
890 0
手把手教你接入微信支付
|
负载均衡 数据安全/隐私保护
一对一直播app开发,直播间的搭建重点
一对一直播app开发,直播间的搭建重点
|
监控 安全 数据挖掘
短视频app开发,如何实现高质量的支付系统架构?
短视频app开发,如何实现高质量的支付系统架构?
|
安全 Java 应用服务中间件
企业微信开发(1)——接入企业微信
本文目录 1. 准备工作 2. 创建应用 3. 验证URL 4. 验证
580 0
|
Web App开发 移动开发 小程序