Coder Social home page Coder Social logo

node-weixin-pay's Introduction

node-weixin-pay NPM version Build Status Dependency Status Coverage percentage

Weixin Pay functions for node

支持QQ群:39287176

Install

$ npm install --save node-weixin-pay

Usage

通用功能

1、初始化对象与基本数据

var nodeWeixinPay = require('node-weixin-pay');
var nodeWeixinConfig = require('node-weixin-config');


var merchant = {
  id: process.env.MERCHANT_ID || 'id',
  key: process.env.MERCHANT_KEY || 'key'
};
var app = {
  id: process.env.APP_ID || 'appid',
  secret: process.env.APP_SECRET || 'appsecret',
  token: process.env.APP_TOKEN || 'apptoken'
};

var certificate = {
  pkcs12: path.resolve(certPKCS12File),             //格式是文件名
  key: String(certKey)
};

//或者

var certificate = {
  pfx: new Buffer(conf.merchant_pfx, 'base64'),     //格式是文件二进制内容
  pfxKey: conf.merchant_id
};

//对于大部分的支付接口来说是需要config的
var config = {
  app: app,
  merchant: merchant,
  certificate: certificate
};

//校验数据的正确性
nodeWeixinConfig.app.init(app);
nodeWeixinConfig.merchant.init(merchant);

var params = { openid: process.env.OPENID,
  spbill_create_ip: '1.202.241.25',
  notify_url: 'http://wx.domain.com/weixin/pay/main',
  body: '测试支付',
  out_trade_no: '111',
  total_fee: '1',
  trade_type: 'JSAPI',
  appid: app.id,
  mch_id: merchant.id,
  nonce_str: 'XjUw56N8MjeCUqHCwqgiKwr2CJVgYUpe' };

2、签名一个请求

var sign = nodeWeixinPay.sign(merchant, params);

3、准备一个支付配置

var id = 'id';
var config = nodeWeixinPay.prepay(app, merchant, id);

具体的API请求部分

4、发送统一支付请求

nodeWeixinPay.api.order.unified(config, params, function(error, data) {
});

5、发送订单查询请求

var config = nodeWeixinPay.api.query(config, params, function(error, data) {
});

6、发送订单关闭请求

var config = nodeWeixinPay.api.close(config, params, function(error, data) {
});

7、发送创建退款请求

var config = nodeWeixinPay.refund.create(config, params, function(error, data) {
});

8、发送退款查询请求

var config = nodeWeixinPay.refund.query(config, params, function(error, data) {
});

9、发送下载对账单请求

var config = nodeWeixinPay.statements(config, params, function(error, data) {
});

10、发送测速报告请求

var config = nodeWeixinPay.report(config, params, function(error, data) {
});

处理微信回调

10、外理回调数据

//req.rawBody should be enabled
var req = {rawBody: xml};
var res = {
  json: function() {

  }
};
nodeWeixinPay.callback.notify(app, merchant, req, res, function(error, data) {
});

License

Apache-2.0 © calidion

node-weixin-pay's People

Contributors

calidion avatar lgyhector avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.