Skip to main content

安装配置

安装

$ pnpm add @iot9x.com/nestjs-wechat-pay-provider

配置

同步方式

import { Module } from '@nestjs/common';
import { readFileSync } from 'node:fs';
import { WechatPayProviderModule } from '@iot9x.com/nestjs-wechat-pay-provider';

@Module({
imports: [
WechatPayProviderModule.forRoot({
appid: '服务商公众号appid',
mchid: '服务商商户号',
subAppid: '子商户应用appid',
subMchid: '子商户商户号',
apiKeyV3: '服务商商户APIv3密钥',
publicKey: readFileSync('商户证书公钥路径'),
privateKey: readFileSync('商户证书私钥路径'),
serialNo: '证书序列号',
sandbox: false
})
]
})
export class AppModule {}

异步方式

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigType } from '@nestjs/config';
import { readFileSync } from 'node:fs';
import { WechatPayProviderModule } from '@iot9x.com/nestjs-wechat-pay-provider';
import { WechatPayRegister } from './modules/config/registers/wechatPay.register';
import { ConfigValidation } from './modules/config/validations/config.validation';

@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
validationSchema: ConfigValidation,
validationOptions: {
allowUnknown: true,
abortEarly: true
},
load: [WechatPayRegister]
}),
WechatPayProviderModule.forRootAsync({
useFactory: (wechatPayConfig: ConfigType<typeof WechatPayRegister>) => ({
appid: wechatPayConfig.appid,
mchid: wechatPayConfig.mchid,
subAppid: wechatPayConfig.subAppid,
subMchid: wechatPayConfig.subMchid,
apiKeyV3: wechatPayConfig.apiKeyV3,
publicKey: readFileSync(process.cwd() + wechatPayConfig.publicKeyPath),
privateKey: readFileSync(process.cwd() + wechatPayConfig.privateKeyPath),
sandbox: false
}),
inject: [WechatPayRegister.KEY]
})
]
})
export class AppModule {}

配置参数说明

参数是否必传类型默认值说明
appidstring-服务商公众号 appid
mchidstring-服务商商户号
subAppidstringundefined子商户 appid
subMchidstring-子商户号
apiKeyV3string-服务商的 APIv3 密钥
publicKeyBuffer-服务商商户证书公钥,请使用 fs.readFileSync() 方法读取
privateKeyBuffer-服务商商户证书私钥,请使用 fs.readFileSync() 方法读取
serialNostringundefined服务商证书序列号,证书序列号可以通过公钥来间接获取,因此非必须参数
sandboxbooleanfalse微信支付启用沙箱环境