支付宝支付接口的调用(支付宝支付的实现)

首先,下面是调用支付宝接口的官网:

支付宝开放平台https://open.alipay.com/platform/home.htmhttps://open.alipay.com/platform/home.htm我们这里只演示沙箱环境下的,正式环境需要审核什么的,正式环境与此配置类似,因此不必在意。

进入官网后,首先登录注册,这里不解释了。

第一步:我们需要生成应用公钥和应用私钥

找到下述界面:

注意工具下载,然后根据实际情况下载,我这里是windows,就下载windows的。下载后安装界面(抱歉,这里没图)会出现下面的选项(截图就不了,照着实施就能看到):选择(1)

(1)为使用这台电脑的任何人安装(所有用户)

(2)仅为我安装(Lenovo)

之后下一步,改变到目录名称无空格的路径下,后续就是下一步,安装。

之后打开支付宝开放平台助手,默认页面下点击生成密钥,见到如下图:

记住这里的应用公钥应用私钥,后面会用到。

 下面就是集成并配置SDK

第一步完成后,我们知道了应用公钥和应用私钥,至于有何作用,后面可知。

第二步。内网穿透(内网穿透大致可以理解为是解决内网访问外网,局域网到广域网的问题,相当于是临时域名),这里我们使用NATAPP,类似也有花生壳等软件。见下方链接

NATAPPnatapp是基于ngrok的国内高速内网穿透专业服务商,独家彻底解决ngrok1.7内存泄漏问题.稳定拒绝掉线,适用于微信开发调试,本地架设演示服务器,外网可以访问,远程服务器,远程桌面,远程办公,游戏联机等https://natapp.cn/1.进入官网后,点击客户端下载,如下图

 我的是win64的,就下载win64的,下载安装后打开natapp_windows_amd64_2_3_9只有一个natapp.exe,如图。

2.点击教程/文档,然后如下图,同时注意下图的两个标记:

再点击使用本地配置文件config.ini,见下图

natapp_windows_amd64_2_3_9中创建一个空白文件config.ini(这是一个配置文件),复制下列到config.ini中,也就是图片中见到的。(下列是config.ini的官方原版)

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

有了authtoken可以不写clienttoken,log改为stdout是为了让他打印日志,日志级别改为DEBUG或INFO,http_proxy为代理设置,没有就不设置,不确定有没有就是没有代理

由上述可知,我们需要从一个地方知道authtoken,其他参数没有多大问题。

authtoken的来源:

配置好后的:authtoken由于很重要,因此不显示了,大家知道即可。

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=xxxxxxxxx      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=stdout                        #log 日志文件,可指定本地文件,none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=DEBUG                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

修改config.ini后可双击启动natapp.exe

对于上述,官方也有一分钟教程(见此步第2小点的图的另一个标记)

到此,对于natapp的配置已完成。下面进行测试:(觉得麻烦也可以不测试)

(1)启动tomcat(注意tomcat需要改为80端口,这是natapp的要求,在conf下的server.xml中),然后访问内网穿透URI:80。

server.xml:

 <Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

(2)启动natapp.exe,见到cmd窗口。标记就是内网穿透地址,这是临时的,过一段时间就变。(那个URI相当于临时域名)

 (3)访问:内网穿透的URI:80

见到tomcat页代内网穿透配置成功。

NATAPP - 连不上 / 错误信息等问题解决汇总_放羊的牧码的博客-CSDN博客

(之后注意暂时不要把tomcat端口改回8080,后续idea启动demo依然要求tomcat端口为80)

第三步:

在“支付宝开放平台开发助手.exe”中已经获得了应用公钥和应用私钥。然后在支付宝开放平台的沙箱环境的沙箱应用中获得应用支付宝公钥。直接见图:注意下图的支付宝网关,后面要用

 点击RSA2(SHA256)密钥(推荐),出现以下,公钥就是应用公钥,通过应用公钥得到支付宝公钥

 

完成上述之后,我们知道了:应用公钥,应用私钥,支付宝公钥(应用公私钥也称为商户公私钥),在后面我们用到了应用私钥和支付宝公钥,应用公钥的目的只是为了通过上述操作获得支付宝公钥,同时我们也知道了支付宝网关(沙箱环境的,整个操作都是在沙箱环境下的)。(支付宝网关正式环境和沙箱环境就差一个dev。)

第四步:找到并下载demo(这个是官方的已经写好的关于调用支付宝支付的java代码,我们需要进行配置,上述三步操作都是为了知道几个配置)

 点击SDK与demo下载

 点击JAVA版的demo下载,并通过idea或eclipse打开。

第五步:idea打开那个demo,项目结构如下,我们唯一需要修改的只有com.alipay.config下的AlipayConfig

官网原版的未修改的AlipayConfig.java如下:

package com.alipay.config;import java.io.FileWriter;
import java.io.IOException;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:2017-04-05*说明:*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号public static String app_id = "";// 商户私钥,您的PKCS8格式RSA2私钥public static String merchant_private_key = "";// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "";// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String notify_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String return_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";// 支付宝网关public static String log_path = "C:\\";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/** * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)* @param sWord 要写入日志里的文本内容*/public static void logResult(String sWord) {FileWriter writer = null;try {writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");writer.write(sWord);} catch (Exception e) {e.printStackTrace();} finally {if (writer != null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}

修改后的:

package com.alipay.config;import java.io.FileWriter;
import java.io.IOException;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:2017-04-05*说明:*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号(使用沙箱环境的APPID)public static String app_id = "xxxxxxx";// 商户私钥(应用私钥),您的PKCS8格式RSA2私钥public static String merchant_private_key = "xxxxxx";// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "xxxxxx";// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问// 工程公网访问地址使用内网穿透客户端提供的域名public static String notify_url = "http://nzsgwf.natappfree.cc/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String return_url = "http://nzsgwf.natappfree.cc/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关(正式环境)// public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";// 支付宝网关(沙箱环境)public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";// 日志路径public static String log_path = "C:\\";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/*** 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)* @param sWord 要写入日志里的文本内容*/public static void logResult(String sWord) {FileWriter writer = null;try {writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");writer.write(sWord);} catch (Exception e) {e.printStackTrace();} finally {if (writer != null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}

应用ID,商户私钥,支付宝公钥,支付宝网关从上述配置都已获得,内网穿透也已获得。

在此之后,开发工具中index.jsp右键run(内网穿透当然要是打开状态下,同时保证内网穿透为最新,那个会变!)

然后访问路径:

支付页http://localhost:8080/alipay_trade_page_pay_JAVA_UTF_8_war_exploded/index.jsp

进入下述界面:

随便输入数据,点击付款:然后可能会出现下面的情况,此时我使用的是谷歌浏览器,我们使用的是沙箱版,然后这或许是浏览器识别的问题,换一个浏览器访问:

支付页http://localhost/alipay_trade_page_pay_JAVA_UTF_8_war_exploded/index.jsphttp://localhost/alipay_trade_page_pay_JAVA_UTF_8_war_exploded/index.jsp     

下面使用的是火狐浏览器:

重复上面操作后进入下述界面:

 账号密码见此:

 输入:

 之后下一步进入下述界面:

 付款:

 然后会自动跳转下面两幅图的其中一个,跳到第一个,是因为内网穿透地址变了,记得关闭并重开(注意:idea里的配置也要改)然后重复流程;跳到第二个返回的是订单号什么的,正常情况下是这个;若返回404NOT FOUND是因为最后跳转的那个return_url.jsp有问题,该文件与idea中index.jsp同级,这个可以改善也没必要改善,这里就不改善了,因为我们主要测试支付宝支付功能,返回的页面功能有机会或有空再搞:

 

上述就实现了支付宝支付功能的调用,当然是沙箱版的,正式版与此很多过程类似,演示困难。同时 ,要注意:

在把支付宝支付功能的调用整合到项目中时,要注意其订单号有要求

选中上图第一个,下面是对订单号的格式要求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70651.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付宝和微信的支付功能如何进行测试?

要分析测试点之前&#xff0c;我们先来梳理一下测试思维。总结来说&#xff0c;任何事物的测试思路都可以总结如下&#xff1a; 第一步&#xff1a;梳理产品的核心业务流程&#xff1a;明白这是个什么项目&#xff0c;实现了什么业务&#xff0c;以及是怎么实现的&#xff1f;…

Android App接入支付功能——支付宝支付

接入前准备 接入APP支付能力前&#xff0c;开发者需要完成以下前置步骤。 本文档展示了如何从零开始&#xff0c;使用支付宝开放平台服务端 SDK 快速接入App支付产品&#xff0c;完成与支付宝对接的部分。 接入准备——支付宝开发能力 一.下载官方sdk&#xff0c;将sdk放入…

推荐一个优秀人工智能(AI)学习网站:Quester AI

网站链接如下&#xff1a; QuesterAI 简要介绍&#xff1a; Quester AI全方位地整合AI学习资源&#xff0c;对每一个从业者&#xff0c;学习者开放&#xff0c;并且是免费开放。同时&#xff0c;Quester AI努力为AI领域学习者和爱好者大量提供持续的AI开源资源&#xff0c;给…

人工智能的数学方法

要成为一名出色的 AI 软件工程师&#xff0c;需要了解多少数学知识&#xff1f;&#x1f914; 在之前的一篇文章中&#xff0c;我写过学习任何主题或领域基础知识的重要性。我建议你先阅读它&#xff08;如果你还没有&#xff09;&#xff0c;以便完全理解这篇文章。 如果您已经…

让人工智能解数学题,可能没你想象的那么简单

来源&#xff1a;微软研究院AI头条&#xff0c;授权CSDN发布。 欢迎人工智能领域技术投稿、约稿、给文章纠错&#xff0c;请发送邮件至heyccsdn.net 约1500年前的古代数学著作《孙子算经》中记载了一个有趣的问题&#xff1a;“今有雉兔同笼&#xff0c;上有三十五头&#xff0…

给自己的课程打个广告

给自己的一些付费课程打个广告吧&#xff0c;金额不高&#xff0c;但你们的支持可以让我在写作、分享时更有动力&#xff0c;在媳妇面前也更有地位哈哈&#xff0c;谢谢支持了&#xff01;&#xff01; 有问题欢迎留言或者加我微信: sxkejinet 面试经验分享OkHttp3 和 Retrofit…

大学生个人职业生涯规划书PPT

大学生如何职业生涯规划主要是指根据个人的兴趣、性格特点、内在潜能来确立个人的职业发展目标&#xff0c;并根据自身情况对未来职业生涯上的短期目标、中期目标和长期目标进行设定&#xff0c;根据设定的这些目标来规划不同阶段下需要完成自我提升的通道。简而言之就是自身通…

python职业规划书_大学生职业规划书

职业生涯规划&#xff08;简称生涯规划&#xff09;&#xff0c;又叫职业生涯设计&#xff0c;是将个人与组织相结合&#xff0c;在对一个人职业生涯的主客观条件进行测定、分析、总结的基础上&#xff0c;对自己的兴趣、爱好、能力、特点进行综合分析与权衡&#xff0c;结合时…

计算机相关专业的学生如何规划自己的职业?

一、 前言 2017年曾经写过一篇关于学什么编程方向的文章&#xff0c;当时反响很大&#xff0c;有不少在校的社团组织私下授权转载我的文章。现在的大学&#xff0c;两极分化极其严重&#xff0c;优秀的同学毕业找工作顺风顺水&#xff0c;平庸甚至较差的同学&#xff0c;找工作…

大学生职业规划策划书

一.前言 我时常问自己“人生之路到底该如何去走”&#xff0c;长久以来我也不断思考并在实践中体会这个问题。心中记得这样一句话“走好每一步&#xff0c;这就是你的人生。”人生之路其实十分短暂&#xff0c;因为你度过的每一天或者每一秒就是你的人生。正因为人生经不起虚度…

大学生职业生涯规划的意义

前言职业生涯规划是指个人发展与组织发展相结合&#xff0c;通过对职业生涯的主客观因素分析、总结和测定&#xff0c;确定一个人的奋斗目标&#xff0c;并为实现这一事业职业目标&#xff0c;而预先进行生涯系统安排的过程。在任何社会、任何体制下&#xff0c;个人职业设计更…

职业生涯规划(career planning)

本文转自&#xff1a;WIKI智库&#xff08;https://wiki.mbalib.com/wiki/职业生涯规划&#xff09; 职业生涯规划的定义 职业生涯规划&#xff08;简称生涯规划&#xff09;&#xff0c;又叫职业生涯设计&#xff0c;是指个人与组织相结合&#xff0c;在对一个人职业生涯的主…

计算机个人职业生涯规划

个人职业生涯规划 摘要 在当下竞争激烈的时代&#xff0c;如果没有做好充分的准备就去迎接社会的毒打&#xff0c;往往是遍体鳞伤。而一个人的职业规划将是我们面对社会的最好的铠甲&#xff0c;即使是简单的未来规划&#xff0c;也会使你成长的路上少点磕绊&#xff0c;所以…

大一上:大学生职业生涯规划书【自我性格、气质、及其优缺点的分析】

大学生职业生涯规划书 一、My MBTI 二、自我描述 我的性格类型倾向为“ INTJ ”(内向 直觉 思维 判断 倾向度&#xff1a; I57 N100 T86 J100 不假思索指数&#xff1a;11) 我在实现自己的想法和达成自己的目标时有创新的想法和非凡的动力。能很快洞察到外界事物间的规律并形…

软件工程大学生职业规划书

引言 在今天这个人才竞争时代&#xff0c;职业生涯规划开始成为在人争夺战中 另一重要利器&#xff0c;对企业而言&#xff0c;如何体现公司“以人为本”人才理念&#xff0c; 关注员工人才理念&#xff0c;关注员工持续成长&#xff0c;职业生涯规划是一种有效手段; 而对每个人…

职业生涯规划访谈,写给在校的你们

今天一位在校大学生邀请我在线做一个关于职业生涯规划的访谈&#xff0c;在此我将他提出的问题以及我个人的一些看法贴出&#xff0c;希望能给在校或是即将毕业的你们有所帮助。 问: 老师你好&#xff0c;就是我想问一下我们计算机专业的大学生&#xff0c;在课堂上学好必要的知…

大学生职业生涯发展与规划

《创业教育课程&#xff08;一&#xff09;----大学生职业生涯发展与规划》 结课作业要求 作业选题&#xff1a;大学规划书 作业要求&#xff1a;从自身的情况、现状出发&#xff0c;有针对性地制定一份详尽的增强自身就业能力的大学规划书&#xff0c;根据相关社会要求有针对性…

流利阅读 2019.2.23 China’s Forbidden City opens to the general public at night for the first time in 94

下载 笔记版/无笔记版 pdf资料&#xff1a; GitHub - zhbink/LiuLiYueDu: 流利阅读pdf汇总 本文内容全部来源于流利阅读。流利阅读对每期内容均有很好的文章讲解&#xff0c;向您推荐。 您可以关注微信公众号&#xff1a;流利阅读 了解详情。 China’s Forbidden City opens to…

英语阅读——2004

文章目录 词汇名词性从句1.主语从句与It形式主语1.1主语从句1.2It形式主语 独立主格结构with独立主格结构倒装句1.完全倒装句1.1副词在句首的倒装1.1.1地点副词在句首的倒装(here、there)1.1.2时间副词在句首的倒装(now、then)1.1.3表运动方向的副词在句首的倒装(in、out、up、…

chatgpt赋能python:用Python开发软件的SEO技巧

用Python开发软件的SEO技巧 随着互联网的发展&#xff0c;越来越多的企业开始意识到网络营销的重要性&#xff0c;而SEO&#xff08;搜索引擎优化&#xff09;是网络营销的重中之重。对于软件开发企业来说&#xff0c;利用SEO技术进行软件推广是很实用的。本文将介绍如何使用P…