nodejs支付宝沙箱模拟支付与nodemailer发送邮件(一)

  最近写了一个电商加旅游的项目,里面支付的功能是必不可少的,因此写完项目之后特别整理一下这些东西,希望对大家写项目的时候有所帮助.

一.nodejs实现支付宝沙箱模拟支付功能:

       1.  进入支付宝开放平台:网址: https://open.alipay.com/platform/home.htm
  1. 在开发工具推荐里面选择沙箱:
    在这里插入图片描述

     3.在应用信息里面记住自己的APPID以及支付宝网关地址.
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/fa7e2b5523bc41a6ab53b7b02ded37f7.png)
     
     4.在沙箱账号里面,卖家信息的卖家账号以及登录支付密码就是当跳转支付时页面需要填入的信息.
     5.沙箱应用界面里面,开发信息的选择中接口加签方式选择自定义密钥.
    

在这里插入图片描述
点击公钥模式,对加签内容进行配置.
6.下载支付宝方平台助手: 网址: https://opendocs.alipay.com/common/02khjo
7. 生成私钥以及公钥.
在这里插入图片描述
这里需要注意的时,nodejs在密钥格式上要选择PKCS1,也就是非JAVA适用.!!!

      8.将公钥和私钥最好新建一个文本文档存放下来,并且将公钥复制填入第五步的加签操作中.
      到这里的话平台操作基本完成.下面就是nodejs中代码怎么写的问题.

    9.首先下载所需用到的插件:

     npm install alipay-sdk --s
	 npm install axios --s
	 npm install cors --s
	 npm install express

10.在项目的根目录下新建一个untils文件夹,在文件夹下新建一个工具文件alipayuntils.js文件: 代码:
 const AlipaySdk = require('alipay-sdk').default;
	const alipaySdk = new AlipaySdk({
	  appId: '', // 应用id
	  gateway: 'https://openapi.alipaydev.com/gateway.do', // 支付宝网关
	  signType: 'RSA2', // 编码格式
	  alipayPublicKey: '', // 支付宝公钥
	  privateKey: '' // 应用私钥
	})
	//最后我们默认导出即可
	module.exports = alipaySdk

11.此处需要配置appid,支付宝公钥和应用私钥,其余两个是固定的,这些操作我们在前已近完成了,只需要把对应的公钥和私钥填入即可.

12.创建路由:

const express = require('express');
const alipaySdk = require('../untils/alipayuntils');
const AlipayFormData = require('alipay-sdk/lib/form').default
const axios = require('axios')
const cors = require('cors') //解决跨域请求问题


/* GET home page. */
pay.get('/', function(req, res, next) {  //路由测试
res.send('index')
})
pay.post('/payment', function(req, res, next) { //支付宝数据封装
 const orderId = req.fields['orderId'];//本次支付的单号,确保唯一
 const name = req.fields['name'];//本次支付单的名字
 const totalPrice = req.fields['totalPrice'];//总共的价格
 const message = req.fields['message'];//商品的描述
// 对接支付宝
const formData = new AlipayFormData();

formData.setMethod('get');

formData.addField('returnUrl', 'http://localhost:3000/paySuccess'); //当支付成功后,可以访问到的页面地址!!!!

// 商单信息
formData.addField('bizContent', {
 out_trade_no: orderId,//单号,前端可以通过uuid生成或者用时间戳加随机数.
 product_code: "FAST_INSTANT_TRADE_PAY",//这个固定写法就行了
 subject: name,//本次支付单的名字
 body: message,//商品的描述
 total_amount: totalPrice//总共的价格

});
 //下面的都是一些固定写法,大家可以参考一下官方文档怎么写的
let result = alipaySdk.exec(
 'alipay.trade.page.pay',
 {},

 { formData: formData }

);

result.then((resp) => {
 res.send({
   success: 'true',
   code: 200,
   result: resp//这会返回一个url,是支付的地,在前端中的操作在后面
 });
});
});

13.前端中的操作:

window.location.href = res.data.result;//当接收到地址的时候就跳转就行了.

ok,基本操作都教给大家了,有兴趣的下来可以再深入看一点.下面给大家看一下我写的效果:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

🆗,那么本次的分享就到此结束,以上纯属个人理解和观点,如有错误还请大佬指正!
 下期为大家带来nodejs利用nodemailer模块发送邮件的基本操作.
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Node.js中实现支付App支付,你可以使用支付官方提供的SDK——alipay-sdk。该SDK提供了一系列的API来进行支付支付的相关操作。你可以直接在项目中下载并使用该SDK。 在进行App支付时,不能直接拼接支付网关请求支付,而是需要生成请求字符串,并将该请求字符串发送给安卓或iOS客户端发起支付请求。同时,前端需要每隔一秒获取后端支付订单的支付状态,以便及时跳转页面。与手机网页支付不同,App支付需要通过支付SDK来唤起支付快捷支付。 为了使用支付App支付服务,你需要进行以下步骤: 1. 登录支付开放平台,创建移动应用,并添加APP支付能力并签约。 2. 在应用信息配置中填写开发信息,包括支付网关和授权回调地址。你可以使用普通公钥方式来配置接口加签方式。 3. 准备支付参数,其中一个重要的字段是签名字段sign。如果未使用开放平台SDK,则需要自行实现签名过程。你可以使用Node.js平台的签名函数来生成签名的请求字符串(orderInfo)。 以上是使用Node.js实现支付App支付的基本步骤。你可以参考支付官方提供的文档和SDK来详细了解和实现相关功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [nodejs最新版支付app支付服务端,alipay-sdk,AlipayFormData,亲测通过,可以直接下载在项目中使用](https://download.csdn.net/download/pengruodong/85133019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [后端: nodejs 支付-app支付 (目前只完成了后端部分)](https://blog.csdn.net/qq_36413371/article/details/107556770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值