美文网首页
nodejs 支付宝支付

nodejs 支付宝支付

作者: shibin | 来源:发表于2019-10-09 09:13 被阅读0次

首先安装引入alipay-sdk,并配置alipay-sdk

alipay-sdk 文档地址 https://www.npmjs.com/package/alipay-sdk

alipay-sdk 文档上并没有写给出app支付实例demo,我这边从网上各种查资料,琢磨了好久才实现。

const AlipaySdk = require('alipay-sdk').default
const aliUtil = require('alipay-sdk/lib/util')

const {
  appId,//支付宝的appId
  privateKey,//商户私钥
  alipayPublicKey,//支付宝公钥
  sandbox
} = require('./config').aliPay
const aliPayOptins = {
  appId,//支付宝的appId
  privateKey,//商户私钥
  alipayPublicKey//支付宝公钥
}

// 如果使用沙箱环境需要设置呢网关为  https://openapi.alipaydev.com/gateway.do
const alipaySdk = new AlipaySdk({
  ...aliPayOptins
})

签名并加密 返回给app客户端,app客户端拿到这串字符调用支付宝就可以了

exports.signOrder = data => {
  const params = {
    bizContent: {
      out_trade_no: '12312312321212',
      subject: encodeURIComponent('苹果电脑'),
      total_amount: 0.2,
      body: encodeURIComponent('Mac Pro1'),
      product_code: 'QUICK_MSECURITY_PAY',
      notifyUrl:'http://.../api/orderNotify'
    }
  }
  const config = alipaySdk.config
  const signData = aliUtil.sign('alipay.trade.app.pay', params, config)
  const {
    url,
    execParams
  } = alipaySdk.formatUrl('', signData)
  const orderInfo = (url + '&biz_content=' + encodeURIComponent(execParams.biz_content)).substr(1)
  return orderInfo
}

获取app支付的通知

//获取App支付的同步通知, POST, https://docs.open.alipay.com/204/105301
exports.confirmOrder = (dataString) => {
  if (alipaySdk.checkResponseSign(dataString, 'alipay_trade_app_pay_response')) {
    return dataString;
  } else {
    return {
      error: true,
      message: 'Payment not verified.'
    }
  }
}


//获取支付宝的异步通知
exports.notifyOrder = dataObject => {
  if (alipaySdk.checkNotifySign(dataObject)) {
    return 'success'
  } else {
    return 'false'
  }
};

支付宝异步参数格式如下,字段名称请参考支付宝的文档(https://docs.open.alipay.com/204/105465/

{ gmt_create: '2019-09-19 13:17:36',
  charset: 'utf-8',
  seller_email: 'hfpwqu7216@sandbox.com',
  subject: '苹果电脑',
  sign:
   'SgJYDQjp3IFqiYa0Bo1oFRICIRV/JPS3ICAMVyAq9xr7QuCbd0M3zudyokr8guOi+S9Fgg2sOOM1X91XV48lQRj4sPD9c5seW/MKD1+X7w6/OCs9Ft+WRooAfN3lw4hRj3uM1hkW4r0erF25fNhyureM3G2HjEgO6j+8F53OPABWOARUtMu+rHcZeC1FQng1JFcSF/mPYVDO
O2B4lnqYw4Up3CbuBt9B0a+iNaD35YKOJQjT5ZbM0IGUswixqLG1lUvWFM640thtewMzPe87Oo6Tra5jVyD69Y1eKwPkVgo/j6TL6FnXXobJgZysOpBMzcB/y2NqWOUUj1mYLSoVBw==',
  body: 'Mac Pro1',
  buyer_id: '2088102179638911',
  invoice_amount: '0.20',
  notify_id: '2019091900222131739038911000543202',
  fund_bill_list: '[{"amount":"0.20","fundChannel":"ALIPAYACCOUNT"}]',
  notify_type: 'trade_status_sync',
  trade_status: 'TRADE_SUCCESS',
  receipt_amount: '0.20',
  app_id: '2016101200667922',
  buyer_pay_amount: '0.20',
  sign_type: 'RSA2',
  seller_id: '2088102179218511',
  gmt_payment: '2019-09-19 13:17:38',
  notify_time: '2019-09-19 13:17:39',
  version: '1.0',
  out_trade_no: '1568870195707',
  total_amount: '0.20',
  trade_no: '2019091922001438911000052152',
  auth_app_id: '2016101200667922',
  buyer_logon_id: 'mvu***@sandbox.com',
  point_amount: '0.00' }

相关文章

  • nodejs 支付宝支付

    首先安装引入alipay-sdk,并配置alipay-sdk alipay-sdk 文档地址 https://ww...

  • nodejs接入支付宝支付

    看到大神写的博客,很是通俗详细易懂,希望对道友们能有帮助,点我跳转

  • Android支付宝支付集成

    Android支付宝支付 标签: android Android支付宝支付使用的流程介绍 支付宝流程介绍 支付宝流...

  • NodeJS对接支付宝沙箱PC支付

    最近想对接对接支付宝接口, 支付宝接口可以使用沙箱测试代码地址: https://github.com/klren...

  • ## [iOS 支付宝支付]

    [iOS开发系列-支付宝支付] 概述 开发中支付通常都会集成支付宝支付,下面讲解支付宝的整体流程。 集成支付宝支付...

  • 三方支付流程总结

    支付宝支付和微信支付 支付宝支付流程图: 支付宝支付: 当我们选择点击了支付宝支付按钮开始 1.app选择商品进行...

  • iOS支付

    支付宝支付 支付宝支付支付宝补充 微信支付 微信支付 内购 iOS开发 内购流程

  • 奖品合集

    支付宝44.44x12 支付宝200x1 支付宝121x1 支付宝111x1 支付宝100x1 支付宝88x1 支...

  • 对接支付宝支付接口开发笔记

    支付宝对接学习笔记: 功能介绍: 支付宝对接 支付宝回调 查询支付状态(略过不讲) 要求: 熟悉支付宝对接核心文档...

  • iOS集成支付宝支付

    一、支付宝支付,首先利用CocoaPods,导入支付宝SDK 二、 创建支付宝支付管理类 AlipayManag...

网友评论

      本文标题:nodejs 支付宝支付

      本文链接:https://www.haomeiwen.com/subject/iwhhqctx.html