微信支付封裝成npm 包
node-wxpay3
node-wxpay3
(支付文件v2)
普通商戶接入文件
前言
本模組整合了大部分微信支付、提現等模組的介面,採用async、await的方式呼叫,使用者不用在考慮引數加密傳送,祕鑰傳送方式、xml怎麼解析、json怎麼轉成xml等一系列麻煩事。
安裝
npm i node-wxpay3 --save
版本介紹
本版本是2.*.*
相對於舊版本1.*.*
做了大的變更,本外掛改用typescript重寫,合併了舊的介面方法。支援require
和 import
兩種方法匯入。
使用
const WxPay = require('node-wxpay3');
或者 import WxPay from 'node-wxpay3'
// https://api.mch.weixin.qq.com/pay/unifiedorder
const wxpay = new Wxpay({
appid: '',
mch_id: '',
key: '',
pfx: fs.readFileSync('./apiclient_cert.p12'),
});
const options = {
body: '測試',
out_trade_no: '23214234,
total_fee: 1,
spbill_create_ip: 'ip',
notify_url: 'https://域名/gateway/boboteacher/student/order/_payReturnss', //自己的介面
trade_type: 'MWEB',
scene_info: JSON.stringify({
h5_info: {
type: 'Wap',
wap_url: 'https://域名',
wap_name: 'bobo',
},
}),
redirect_url: 'https://域名/webpage/api/index.html#/', // 支付成功 返回頁面 h5支付需要
};
const result = await wxpay.unifiedorder(options);
其他介面和微信文件路徑同名 同上一樣使用
額外增加的介面:
- md5 引數object
wxpay.md5({
body: '測試',
out_trade_no: '23214234,
})
- hmac 引數object 使用同上
- xmltojson 引數string xml 轉json 暴露給外部呼叫 使用同上
- callback_check 支付回撥驗證 引數object 返回boolean koa
// 微信返回的資料是text/xml的資料流格式
// 接收資料流並且處理
ctx.req.setEncoding('utf8');
ctx.req.on('data', function(chunk) {
data += chunk;
});
// getxml 就是xml形式的資料
const getxml = await new Promise(function(resolve) {
ctx.req.on('end', function() {
resolve(data);
});
});
// 呼叫wxpay.xmltojson(getxml) 獲得的引數就是data
let data = wxpay.xmltojson(getxml)
let result = wxpay.callback_check(data)
====》 result = true 則校驗成功
ctx.type = 'application/xml';
ctx.body =
`<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>`;
return; d
- publicEncrypt 公鑰加密
wxpay.publicEncrypt(publicKey, data)
其他
如果使用的是1.*.*
請看文件
相關文章
- iOS微信支付接入以及工具類封裝iOS封裝
- 微信支付iOS整合與二次封裝iOS封裝
- npm 包安裝位置NPM
- npm如何更新安裝包?NPM
- C#開發微信門戶及應用(35)--微信支付之企業付款封裝操作C#封裝
- NPM 安裝包遇到的坑!NPM
- Android 支付寶支付功能封裝實現Android封裝
- 微信小程式元件封裝微信小程式元件封裝
- Node.js 如何優雅的封裝一個實用函式的 npm 包Node.js封裝函式NPM
- 前端 npm 安裝包,精選大全前端NPM
- npm包全域性安裝報錯NPM
- npm如何自動更新安裝包?NPM
- Android 微信支付 微信是否安裝判斷Android
- WebViewH5跳轉微信支付、支付寶、QQ錢包WAPWebViewH5
- 04.區域性安裝npm包NPM
- npm安裝全域性包的問題NPM
- (乾貨)微信小程式元件封裝微信小程式元件封裝
- 微信小程式 request請求封裝微信小程式封裝
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- 微信支付:《2024國慶微信假期資料包告》微信支付的消費總筆數實現20%增長
- 微信開發 微信支付
- npm發包流程NPM
- 如何搭建npm包NPM
- 微信小程式 wx.request 的封裝微信小程式封裝
- 仿微信評論控制元件封裝控制元件封裝
- 微信小程式request請求的封裝微信小程式封裝
- React Native 原生模組封裝:支付寶示例React Native封裝
- 微信App支付APP
- PHPcms微信支付PHP
- 手把手教你封裝 Vue 元件,並使用 npm 釋出封裝Vue元件NPM
- npm 與 yarn 安裝包不一致NPMYarn
- 使用 nvm 後,npm 安裝全域性包問題NPM
- WireShark資料包分析資料封裝封裝
- 微信小程式 BLE 基礎業務介面封裝微信小程式封裝
- 釋出npm包流程NPM
- PHP-Laravel支付寶支付和微信支付PHPLaravel
- 命令模式-將請求封裝成物件模式封裝物件
- 微信支付開發