@cvo/plugin-wechat
v0.0.0
Published
Wechat adaptor for CVO Framework
Readme
@cvo/plugin-wechat
WeChat integration plugin for CVO Framework, providing Mini Program authorization and PC Web scan-to-login functionality.
🚀 Features
- Mini Program Auth: Easily exchange
codeforopenidandunionid. - PC Web Login: Quickly generate WeChat scan-to-login redirect URLs.
- Structured Service: Encapsulates complex WeChat APIs into a clean
WechatService. - Built-in HTTP Client: Uses axios for robust communication.
🛠 Configuration
Register the plugin in your cvo.config.ts:
import { defineConfig } from '@cvo/core';
import { WechatPlugin } from '@cvo/plugin-wechat';
export default defineConfig({
plugins: [
new WechatPlugin({
appid: process.env.WECHAT_APPID!,
secret: process.env.WECHAT_SECRET!
})
]
});🧠 Usage
Mini Program Login
Access the service via useWechat() in your API handlers:
import { useWechat } from '@cvo/plugin-wechat';
export async function login(code: string) {
const wechat = useWechat();
const service = wechat.getService();
```,old_str:
// Exchange code for WeChat OpenID
const openid = await service.getOpenid(code);
// Find or create user by openid...
return { openid };
}PC Web Scan Login
Generate the redirect URL for the WeChat login page:
import { useWechat } from '@cvo/plugin-wechat';
export async function getLoginUrl() {
const wechat = useWechat();
const service = wechat.getService();
const redirectUri = 'https://myapp.com/api/wechat/callback';
const state = 'random-string-for-security';
const url = service.getPcLoginUrl(redirectUri, state);
return { url };
}🛠 Advanced: Custom WeChat Service
If you need to extend WeChat functionality (e.g., Pay, Template Messages), you can inherit from WechatService:
import { WechatService, WechatPlugin } from '@cvo/plugin-wechat';
class MyAdvancedWechatService extends WechatService {
async sendTemplateMessage(to: string, data: any) {
// Custom logic...
}
}Note: If you need custom service injection, consider manually registering your service using CVO's
InjectorRegistry.
