聊一聊如何接入支付宝

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为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
一文讲透支付宝沙箱的基本应用
沙箱环境是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。沙箱为开放的产品提供有限功能范围的支持,可以覆盖产品的绝大部分核心链路和对接逻辑,便于开发者快速学习/尝试/开发/调试。沙箱环境会自动完成或忽略一些场景的业务门槛,例如:开发者无需等待产品开通,即可直接在沙箱环境调用接口,使得开发集成工作可以与业务流程并行,从而提高项目整体的交付效率。......
1495 0
一文讲透支付宝沙箱的基本应用
|
12月前
|
小程序 开发工具 开发者
微信小游戏开发实战12-广告的开通和接入
本节内容主要包括:如何尽快的开通广告功能,以及如何将广告接入到微信小游戏中。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
481 0
|
移动开发 小程序 JavaScript
手把手教你接入微信支付
手把手教你接入微信支付
880 0
手把手教你接入微信支付
|
XML 小程序 安全
微信第三方开放平台代小程序实现业务
有没有想过,只需要开发一套公众号/小程序代码,以之为模板,再来一套后台管理系统,把在微信公众号后台做的那些事都搬到我们自己的系统中。来一个业务相同的小程序,只需要管理员授权后,只要在我们的系统中点点几个按钮,就可以把小程序发布上线,一次开发供 N 个公众号使用,提供标准化的接口服务来满足业务的基础需求。通过扫描二维码授权给平台,帮助 N 多个公众号代实现业务,不再需要理解繁琐参数设置,并且密码不提供给开发者,保证安全,真正做到解放运营同学和开发的双手,有更多的时间去谈女朋友,那该多好。
306 0
微信第三方开放平台代小程序实现业务
一图看懂阿里实现扫码功能
一图看懂阿里实现扫码功能
382 0
一图看懂阿里实现扫码功能
|
算法 架构师 容灾
支付宝应用的架构到底有多牛?
支付宝应用的架构到底有多牛?
424 0
支付宝应用的架构到底有多牛?
|
安全 Java 应用服务中间件
企业微信开发(1)——接入企业微信
本文目录 1. 准备工作 2. 创建应用 3. 验证URL 4. 验证
578 0
|
存储 自然语言处理 前端开发
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
常规“扫码登录”业务,一般由PC端和手机端两部分组成,而且PC端一般作为“被扫码方”,登录态则由手机端进行操作及确认。那以“CIBN酷喵影视”为代表的OTT大屏电视场景,其扫码登录实现情况又是怎样的呢?
971 0
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
|
机器学习/深度学习 编解码 并行计算
史上最全的支付宝二维码扫码优化技术方案
源自支付宝的扫码组件,全新升级,免费开放!让天下没有难认的“码”
7090 0
史上最全的支付宝二维码扫码优化技术方案
|
前端开发 JavaScript 容灾
手机淘宝短视频业务「哇哦视频」迁移上 FaaS 笔记公开
在看了那么多“技术原理/顶层设计/平台建设”相关的文章之后,我相信你对 FaaS 肯定产生过跃跃欲试的感觉,但也肯定存在诸多疑惑。关于这些疑惑,经过了这四个月的考验,我想我已经有了自己的答案。接下来我将会向大家分享我这四个月的历程,带大家一起看看,在一名一线业务同学的眼中,FaaS 究竟会给前端同学带来什么?
手机淘宝短视频业务「哇哦视频」迁移上 FaaS 笔记公开