聊一聊如何接入支付宝

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为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,转载请保留。

相关文章
|
3月前
|
小程序 前端开发 Java
携程技术分享:亿级流量的办公IM及开放平台技术实践
本文总结了携程办公IM这些年的发展历程及未来的演进方向,并着重从高可用、高性能和可扩展的角度,探讨开放式平台的技术实现及发展方向。
54 0
携程技术分享:亿级流量的办公IM及开放平台技术实践
|
负载均衡 数据安全/隐私保护
一对一直播app开发,直播间的搭建重点
一对一直播app开发,直播间的搭建重点
|
C# 开发工具
新版支付宝手机支付流程_C#版
新版支付宝手机支付流程_C#版
196 0
|
开发工具 git 微服务
阿里大鱼短信微服务搭建
阿里大鱼短信微服务搭建
292 0
阿里大鱼短信微服务搭建
|
前端开发 JavaScript 容灾
手机淘宝短视频业务「哇哦视频」迁移上 FaaS 笔记公开
在看了那么多“技术原理/顶层设计/平台建设”相关的文章之后,我相信你对 FaaS 肯定产生过跃跃欲试的感觉,但也肯定存在诸多疑惑。关于这些疑惑,经过了这四个月的考验,我想我已经有了自己的答案。接下来我将会向大家分享我这四个月的历程,带大家一起看看,在一名一线业务同学的眼中,FaaS 究竟会给前端同学带来什么?
手机淘宝短视频业务「哇哦视频」迁移上 FaaS 笔记公开
|
安全 Java 应用服务中间件
企业微信开发(1)——接入企业微信
本文目录 1. 准备工作 2. 创建应用 3. 验证URL 4. 验证
636 0
|
Linux 开发者
阿里小程序云周刊第6期:阿里云多端小程序 20万商家的放心之选
阿里小程序云周刊将定期带来最新的小程序相关资讯、活动、技术文章、视频课程、热门问答,欢迎大家订阅阿里小程序云周刊
16944 0
阿里小程序云周刊第6期:阿里云多端小程序 20万商家的放心之选
|
存储 自然语言处理 前端开发
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
常规“扫码登录”业务,一般由PC端和手机端两部分组成,而且PC端一般作为“被扫码方”,登录态则由手机端进行操作及确认。那以“CIBN酷喵影视”为代表的OTT大屏电视场景,其扫码登录实现情况又是怎样的呢?
1028 0
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
|
机器学习/深度学习 编解码 并行计算
史上最全的支付宝二维码扫码优化技术方案
源自支付宝的扫码组件,全新升级,免费开放!让天下没有难认的“码”
7775 0
史上最全的支付宝二维码扫码优化技术方案
|
中间件 Java 应用服务中间件
中间件小姐姐直播“带货”——阿里程序员必知的插件
小姐姐这次给大家讲解的是一款 IDE 插件—— Cloud Toolkit, 能够提高开发、部署应用的效率,还可以通过插件快速创建 Dubbo 工程等等,自去年 12 月上线以来,就超过几万的开发者在使用这款插件。
2158 2