Vue node.js实现支付宝支付(沙箱测试)

2023-10-31

一、支付宝开放平台创建应用:打开支付宝开放平台首页(注意:正式环境、沙箱环境都需要此步)


1、选择开发者中心 ---> 网页&移动应用 (此时是实现网站支付功能)

2、选择支付接入

3、填入名称(注意名称规范,不能写测试字样,详细参考官网命名规范)、上传图片即可

4、此时,需要网站支付,默认没有,所以点击添加功能,添加即可

5、【重点来了】主要是开发设置的接口加签方式的设置

6、点击设置,会出现以下弹窗,选择的openssl第三方工具(提前在电脑上安装喔,安装就是一路next即可)

7、【本地生成秘钥】官网有提供秘钥生成方式,但是用1024会提示改成2048,所以改一下就好啦

具体命令:

openssl  genrsa -out app_private_key.pem 2048  #生成私钥

openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem  #生成公钥

8、然后将公钥中的字符串复制第6步的图中(即除去‘-----BEGIN PUBLIC KEY-----’和‘-----END PUBLIC KEY-----’的字符串,注意不能有空格),点击保存设置即可

9、此时,若只是网站支付,直接提交审核即可,不用配置应用网关和授权回调地址,提交后,会在一天内得到审核结果,现在做什么呢,等待,无尽的等待哈哈

10、【等到审核通过】会显示已上线,点击查看详情,因为此处是网站支付,选择去签约,然后上传相关证书即可,(注意:如果是沙箱测试,就不需要此步,完成以上步骤即可,由于我是自己测试,所以这一步之后的步骤也没有做,因为没有营业执照哈哈哈o(´^`)o


  【签约】


 【上传营业执照】

二、Node.js实现网站支付(以下步骤都是在沙箱环境测试,需要上述步骤中的私钥、公钥)


2.1、首先捏,先准备沙箱环境的秘钥吧 ,点击沙箱应用--> 设置秘钥(因为我设置过了,所以会多一个,查看应用公钥和支付宝公钥),这里设置的秘钥,就是上述步骤中自己生成的公钥(【注意】不是支付宝公钥,一会需要这里的配置信息,即APPID、测试的支付宝网关、支付宝公钥等)


注意】将生成的支付宝公钥,自定义一个文件,如alipay_public_key.pem,将上述生成的字符串添加到该文件,并且字符串前后加上秘钥所需描述:“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”

2.2、【中途休息】选择文档中心的统一收单下单并支付页面接口,在线调试的沙箱测试一下(好像并没有什么用,返回的空对象,我记得之前测试响应信息是有数据的哎,就当点一下玩吧,知道这个接口可以用),统一收单线下交易查询(测试玩一玩ヽ(ー_ー)ノ)


  【左侧生成订单号,右侧查看返回数据】


  【点击在线调试】


 【左侧输入订单号,右侧查看返回数据】

2.3、此时查看支付宝提供的开发文档(开发文档看的我差点吐血,因为找不到测试入口,还好想起之前的官网提供的问题搜索),后来找到文档入口、问题搜索入口了,见下图,因为文档中心,具体不知道在哪,所以在技术支持中心,搜索了网站支付,我选的第三个网站如何支付宝支付,然后就点击电脑网站支付


 【点击电脑网站支付】

2.4、【重点之一】文档中,快速接入步骤,刚才已经完成,所以现在主要是配置SDK(哼,下面的Demo竟然没有NodeJS,所以点击链接下载和使用教程),然后在本地项目中安装sdknpm install alipay-sdk),其中有一个示例,不过我本地用的JavaScript,所以点击下面Demo中的SDK配置,看看有没有对应的示例


【点击NPM项目依赖】 


【根据步骤进行安装】 


 【点击SDK配置】

2.5、【查看SDK配置】点击使用文档,里面确实有JS的使用,可是写的不全哎,再看看下面Demo选项呢,yah,找到一个页面类接口调用,这就是我需要的,现在结合使用文档页面类接口调用SDK 配置exec 调用参数等进行实际操作吧(其中开放平台配置,按以上步骤来的话,就是已经配置好的,终于到了重点了,想哭〒▽〒

2.6、【重点之一】接下来是写支付接口的使用,即返回给前端一个支付宝支付的地址,需要注意的是,需要之前生成的私钥,和准备的支付宝公钥(我是放在同一个文件夹下,文件目录如下,然后我把订单号outTradeNo改成了:“TEST_1569380127321”),其中主要沙箱环境和正式环境的区别:

    沙箱的网关地址(gateway:https://openapi.alipaydev.com/gateway.do)

    沙箱的appId(用沙箱的appId,而不是之前申请的应用APPID,那是用于正式环境的)

    沙箱的应用配置(signType:'RSA',正式环境是'RSA2')

【文件目录如下】
【注意】如果需要支付后跳转到商户界面,可以增加属性"returnUrl"
formData.addField('returnUrl', 'http://xxxxxx'); // 【支付成功后跳转到商户地址】HTTP/HTTPS开头字符串

2.7、【此时,请求该接口】(我使用的chrome的WEB前端助手(FeHelper)插件,里面有简易版Postman,可以请求简单的get、post接口),如图,会返回一个result的地址,即是支付页面,点击跳转就会出现支付页面,可以下载沙箱支付宝app(余额随便充值,感觉钱真的只是数字哈哈),不下载也可以用沙箱的买家账号进行支付


 【支付页面,用自己的沙箱账号哈】


 【沙箱账号查找处】


 【充值,按心情充】

2.8、【重点之一】支付之后,下面写支付查询接口的使用,需要安装request(npm install --save request),参考公共错误码(【注意】,查询接口的方法verifyToken是自己封装的检查token的函数,此处不是重点,所以删掉即可)

【引入中间件】


【查询订单支付状态】


【函数返回描述信息】


【接口返回数据】

三、具体操作演示

【创建订单】


【支付页面】


【支付成功后跳转到指定页面】

总结:

1、支付宝开放平台,官方文档的教程一般比较详细,就是需要研究一下哈哈,具体问题可以在此处搜索https://opensupport.alipay.com/support/knowCategory

2、网站支付过程中,需要沙箱的配合,并且注意区别正式环境(因为官网的示例都是正式环境的配置)

3、沙箱和正式环境主要区别:APPID、网关地址gateway、应用配置signType

4、其中还涉及在node.js,利用request发送http请求

5、具体代码,已上传github

写给自己的随笔,有问题欢迎指出ᕦ(・ㅂ・)ᕤ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue node.js实现支付宝支付(沙箱测试) 的相关文章

随机推荐

  • OPENGL纹理加载显示颜色偏差

    问题 用Kinect Dk读出来的图像用Opencv显示没有纹理 保存为BMP也没有问题 但是OpenGL纹理加载显示出来偏蓝 解决 OpenGL纹理数据加载时使用的颜色通道错误了 原来数据的颜色通道是BGRA的 之前 glTexImage
  • mysql调优小计

    1 选择最合适的字段属性 类型 度 是否允许NULL等 尽量把字段设为not null 查询时对 是否为null 2 要尽量避免全表扫描 先应考虑在 where 及 order by 涉及的列上建 索引 3 应尽量避免在 where 句中对
  • 使用myheritage实现静态照片变成视频

    网址 https www myheritage com 首先 注册 可以使用google账号 其次 上传照片 接下来 生成动画 最后 下载视频
  • python之post上传文件简单示意

    coding utf 8 作者 萧海 联系 128 File py post py Date 9 1 2023 4 48 PM application
  • java.lang.NoClassDefFoundError: Could not initialize class com解决方案

    本文转载自 https www cnblogs com liuyangfirst p 6811937 html 作者 liuyangfirst 转载请注明该声明 编写的时候遇到这样一个bug java lang NoClassDefFoun
  • 如何使用WINDOWS7本地电脑的远程桌面连接阿里云WINDOWS服务器

    如果您的远程服务器采用了Windows服务器系统 那么使用WINDOWS7的 远程桌面连接 登录云服务器 无论在连接速度上还是方便度上 都会好很多 下面我介绍使用远程桌面连接的方法来管理云服务器 一 工具 原料 阿里云Windows SER
  • 低代码工具该如何选择?

    低代码 概念在国内持续走红 看到很多人都在问市面上这么多的低代码产品 应该如何选择 选择的标准到底是什么 这篇文章就和大家简略的分享一下三个检测 低代码 产品的标准 通过对这三方面的考量 相信大家都能擦亮眼睛找到最好的那一款 1 语言属性
  • 教你搞懂 Git!

    尽管每天你都会用到Git 常用的命令可能不到5个 但你可能现在还搞不懂它的工作原理 为什么Git可以管理版本 基本命令git add和git commit到底在干什么 在这篇文章中 我将用一个例子来解释Git的运行过程 帮助你理解Git的工
  • 派生类的定义

    类的继承与派生 基类与派生类 继承 inheritance 是面对对象程序设计的一个重要特性 是软件复用 software reuse 的一个重要形式 继承允许在原有类的基础上创建新的类 新类可以从一个或多个原有类中继承数据成员和成员函数
  • WRTnode-Windows的putty连接

    Putty是一款远程登录工具 用它可以非常方便的登录到Linux服务器上进行各种操作 命令行方式 Putty完全免费 而且无需安装 双击即可运行 支持多种连接类型 Telnet SSH Rlogin 使用简单 实在是一款十分值得推荐的工具
  • 手把手教你:基于Django的新闻文本分类可视化系统(文本分类由bert实现)

    系列文章 第十三章 手把手教你 基于python的文本分类 sklearn 决策树和随机森林实现 第十二章 手把手教你 岩石样本智能识别系统 第十一章 手把手教你 基于TensorFlow的语音识别系统 目录 系列文章 一 项目简介 二 任
  • 50 个 JavaScript 面试问题

    你的 JavaScript 水平如何 您是摇滚明星 JavaScript 开发人员还是新手 让我们通过这 50 个 JavaScript 面试问题来测试你的知识 每个问题都有一个答案 但我鼓励你们在查看答案之前尽力而为 什么是JavaScr
  • Linux新用户登录时出现“-bash-4.2$”的解决办法

    Linux服务器新建的用户在登录时显示 bash 4 2 而不是 user hostname 的显示方式 出现此问题的原因是在添加普通用户时 用户家目录下丢失了 bash profile和 bashrc两个环境变量文件 解决办法 cp et
  • 【pygame】Sprite类

    Sprite类 pygame sprite Sprite 可视游戏中的对象的基础类 属性 Sprite groups gt Sprite 使用Sprite类派生新类时需要分配 Sprite image 和 Sprite rect 属性并添加
  • web开发入门感想

    原创 negoo 方晓 来源 http phpinsider cn 经常在某些论坛和QQ群里看到一些朋友会问 怎样才能学好PHP 怎样才能学好 语言 但别人回答最多的是 从最 简单 的开始 s 2 这个简单也许真的不简单 呵呵 下面我想分享
  • promote 的充值及投放技巧not.10

    v
  • [PAT] Chemical Equation

    A chemical equation is the symbolic representation of a chemical reaction in the form of symbols and formulae wherein th
  • Java多线程基础知识之可重入锁和非可重入锁

    前言 可重入锁和不可重入锁的概念 1 可重入锁 所谓可重入锁 意味着线程可以进入它已经拥有的锁的同步代码块儿 2 非可重入锁 所谓非可重入锁 即若当前线程执行某个方法已经获取了该锁 那么在方法中尝试再次获取锁时 就会获取不到被阻塞 3 说明
  • 监督学习(五):LightGBM算法

    监督学习 五 LightGBM算法 提升树是利用加法模型和前向分布算法实现学习的优化过程 它有一些高效的实现 如GBDT XGBoost和pGBRT 其中GBDT是通过损失函数的负梯度拟合残差 XGBoost则是利用损失函数的二阶导展开式拟
  • Vue node.js实现支付宝支付(沙箱测试)

    一 支付宝开放平台创建应用 打开支付宝开放平台首页 注意 正式环境 沙箱环境都需要此步 1 选择开发者中心 gt 网页 移动应用 此时是实现网站支付功能 2 选择支付接入 3 填入名称 注意名称规范 不能写测试字样 详细参考官网命名规范 上