Node.js实现支付宝H5支付
1、 创建支付应用
1.1、根据需要选择接口类型,这里选择支付应用。
1.2、选择使用环境
1.3、签约当面付(线下支付)
2、 使用alipay-sdk
2.1、 引入服务端SDK模块
npm i alipay-sdk
2.2、 配置app信息
var AlipaySdk = require('alipay-sdk').default;
var aliService = require("../service/aliPay");
var alipaySdk = new AlipaySdk({
appId: payConfig.ali.appId,
privateKey: payConfig.ali.privateKey,
alipayPublicKey: payConfig.ali.publicKey,
});
- appId: String 开放平台上创建应用时生成的 appId
- privateKey: String 应用私钥
- alipayPublicKey: String 支付宝公钥,用于开放平台返回值的验签
2.3、 使用exec方法调用接口
alipaySdk.exec(method, params, options).then(result => {
// console.log(result);
})
参数说明:
- 必选
- method: String 调用的 Api,比如 alipay.system.oauth.token
- 可选
- params: Object Api 的请求参数(包含部分“公共请求参数”和“请求参数”)
- bizContent: Object 可选项
- 注意: 仅当 Api 文档的“公共请求参数”列表中存在 biz_content时,才需要通过 bizContent 设置请求参数,否则应该通过 params 传递请求参数
- options: Object 可选项
- validateSign: Boolean 是否对返回值验签(依赖实例化时配置的”支付宝公钥“),默认 false
- formData: Object 文件上传类接口的请求参数,,默认 null
- log: Log 对象,存在时会调用 info、error 方法写日志,默认 null 即不写日志
- bizContent: Object 可选项
- params: Object Api 的请求参数(包含部分“公共请求参数”和“请求参数”)
- exec 返回值类型: Promise
例子:
let params = {bizContent: {
outTradeNo: aliService.getRandomOrder(),
subject:'水侠后付费取水',//交易标题
totalAmount:money,//订单金额
buyerId:req.session.user.openid,
}};
alipaySdk.exec(payConfig.ali.orderCreate,params).then(orderResult=>{
show("订单号"+order.tradeNo);
});
注意:
若接口文档中公共参数中有biz_content参数,那业务参数全部放在biz_content中,详见具体接口。
3、 H5支付
前端JS代码
$(document).ready(function(){
// 页面载入完成后即唤起收银台
// 此处${tradeNO}为模板语言语法,要用字符串代替
tradePay("${tradeNO}");
// 点击payButton按钮后唤起收银台
$("#payButton").click(function() {
tradePay("${tradeNO}");
});
// 通过jsapi关闭当前窗口,仅供参考,更多jsapi请访问
$("#closeButton").click(function() {
AlipayJSBridge.call('closeWebview');
});
});
// 由于js的载入是异步的,所以可以通过该方法,当AlipayJSBridgeReady事件发生后,再执行callback方法
function ready(callback) {
if (window.AlipayJSBridge) {
callback && callback();
} else {
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
function tradePay(tradeNO) {
ready(function(){
// 通过传入交易号唤起快捷调用方式
AlipayJSBridge.call("tradePay", {
tradeNO: tradeNO
}, function (data) {
if ("9000" == data.resultCode) {
alert("支付成功");
}
});
});
}
响应说明:
4、 附录
node.js配置服务端sdk教程:https://www.npmjs.com/package/alipay-sdk
当面付接入教程:https://docs.open.alipay.com/194
名词解释:
应用网关:用于接收支付宝异步通知,例如口碑开店中,需要配置此网关来接收 开发者门店被动通知。
授权回调地址:第三方授权或用户信息授权后回调地址。授权链接中配置的red...
转载于:https://www.cnblogs.com/YannYao/p/9717486.html
Node.js实现支付宝H5支付相关推荐
- Node.js接入支付宝(蚂蚁金服)支付
最近项目(Android和Ios)中需要接入付费功能(支付宝和微信),下面就先来介绍下接入支付宝的流程.文章主要分为三大块: 第一块是如何在蚂蚁金服的开放平台创建一个应用并且配置开发选项. 第二块是n ...
- C# ASP.NET MVC 微信和支付宝H5支付开发及Demo
微信和支付宝H5支付 最近开发任务遇到了一个要在手机浏览器里面调起微信和支付宝去支付的开发需求,以前都是做的扫码支付或者JSAPI都是在软件内部支付的,没遇到过在自己浏览器内唤醒微信或者支付宝的支付这 ...
- 微信h5支付和公众号支付、支付宝h5支付
1.微信h5支付: 首先是支付参数的构建,这个需要通过后台进行组装,后台会跟微信进行数据的交互,而你所需要做的是拿到返回的数据,然后传递给微信的JSSDK,由微信的JSSDK进行后续操作,比如说先跳转 ...
- tp5 集成支付宝h5支付接口
tp5 集成支付宝h5支付接口 前台支付的时候调取后台接口 function alipay(order_sn){$.ajax({url: '接口地址',type: "GET",da ...
- c# .net core 微信、支付宝H5支付链接获取,支付回调方法,退款方法小计
支付链接获取 //隐藏代码:获取一个订单model实体,并判断此订单是否发起过支付链接吊起,如发起过且链接没过期,则直接返回支付链接(仅限微信)if (//隐藏代码:判断是否为待付款){switch ...
- 利用抖音Cookie充值接口提取支付链接,调起原生微信h5支付宝h5支付
最近开始搞一些个人支付通道的开发,方便个人不用和第三方平台签约就能收款,省去很多流程手续的成本. 然后翻了一下网上并没有太多现成的技术教程,只能自己研究着搞了. 这次要分享的是利用抖音的充值接口,去分 ...
- h5支付不能打开支付宝 ios_iOS 解决微信h5支付,支付宝h5支付无法直接返回APP的问题...
由于公司的业务需要,为了节省申请开通微信支付的时间和人力,公司决定使用微信h5支付.这样即节省了时间,同时以后所有的APP都能使用h5支付,既方便又快捷. 但是真正做的时候问题来了,当你支付成功之后或 ...
- 新版开运网运势测算网站源码 支持微信/支付宝H5支付 支持分销代理 可封装APP
源码介绍 我在外面花钱购买的某站VIP资源,就是那种搬砖站,买来没时间调试发给大家看看吧,喜欢的就下去玩玩! 支持微信/支付宝H5和电脑端扫码支付.手机端可以调起微信/支付宝应用支付 支持后台设置价格 ...
- 支付宝H5支付实现 绕过浏览器白名单
在开发支付宝H5支付的时候,遇到了一个很尴尬的问题,无法唤起支付宝APP问题分析:当前浏览器不在支付宝配置的白名单内 市场上的浏览器太多,总有用户会使用不一样的浏览器,就UC浏览器来说,不同版本也有出 ...
最新文章
- TCP三次握手,四次分手
- Sequelize框架
- php导出excel数据使用csv替代xls格式
- Scala操作外部数据
- 的图层类型有哪些_东莞都市领航平面设计培训班都学习哪些内容?
- 【AI视野·今日CV 计算机视觉论文速览 第180期】Wed, 26 Feb 2020
- mobx中的数组需要注意的地方
- 【Linux】部署cobbler
- VoosteQ Material Comp for Mac - 尖端音频压缩器
- 项目在服务器的绝对路径,项目在云服务器上的绝对路径
- 《薄世宁医学通识讲义》笔记
- dota5显示正在连接协调服务器,win10系统打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中如何解决...
- POS机31个基础知识你了解多少?
- 服务器主动向android手机端推送消息
- java 有多少种锁_java有哪些锁?java锁种类盘点
- 闲谈IPv6-从ICMP的视角形而上地分析IPv6
- (转载)JS与WebView交互存在的一些问题
- echarts折线图 - 区域图 -如何设置填充色
- 平板有必要买触控笔吗?好用又便宜的触控笔推荐
- sql 语句实现电话号筛选,例如:AABB,ABAB