mirror of
https://github.com/cool-team-official/cool-admin-midway.git
synced 2024-11-01 22:20:30 +08:00
整理代码
This commit is contained in:
parent
58e9587c8e
commit
bb5d19841c
@ -1,137 +0,0 @@
|
|||||||
import { Body, Config, Inject, Post, Provide } from '@midwayjs/decorator';
|
|
||||||
import {
|
|
||||||
CoolController,
|
|
||||||
BaseController,
|
|
||||||
CoolWxPayConfig,
|
|
||||||
CoolAliPayConfig,
|
|
||||||
} from '@cool-midway/core';
|
|
||||||
import { CoolAliPay, CoolWxPay } from '@cool-midway/pay';
|
|
||||||
// @ts-ignore
|
|
||||||
import AlipayFormData from 'alipay-sdk/lib/form';
|
|
||||||
// @ts-ignore
|
|
||||||
import { sign } from 'alipay-sdk/lib/util';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 微信支付
|
|
||||||
*/
|
|
||||||
@Provide()
|
|
||||||
@CoolController()
|
|
||||||
export class AppDemoPayController extends BaseController {
|
|
||||||
// 微信支付
|
|
||||||
@Inject()
|
|
||||||
wxPay: CoolWxPay;
|
|
||||||
|
|
||||||
// 支付宝支付
|
|
||||||
@Inject()
|
|
||||||
aliPay: CoolAliPay;
|
|
||||||
|
|
||||||
@Inject()
|
|
||||||
ctx;
|
|
||||||
|
|
||||||
@Config('cool.pay.wx')
|
|
||||||
wxPayConfig: CoolWxPayConfig;
|
|
||||||
|
|
||||||
@Config('cool.pay.ali')
|
|
||||||
aliPayConfig: CoolAliPayConfig;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 微信扫码支付
|
|
||||||
*/
|
|
||||||
@Post('/wx')
|
|
||||||
async wx() {
|
|
||||||
const orderNum = await this.wxPay.createOrderNum();
|
|
||||||
const params = {
|
|
||||||
description: '测试',
|
|
||||||
out_trade_no: orderNum,
|
|
||||||
notify_url: this.wxPayConfig.notify_url,
|
|
||||||
amount: {
|
|
||||||
total: 1,
|
|
||||||
},
|
|
||||||
scene_info: {
|
|
||||||
payer_client_ip: 'ip',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const result = await this.wxPay.getInstance().transactions_native(params);
|
|
||||||
return this.ok(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 微信支付回调通知
|
|
||||||
*/
|
|
||||||
@Post('/wxNotify')
|
|
||||||
async wxNotify(@Body() body) {
|
|
||||||
const check = await this.wxPay.signVerify(this.ctx);
|
|
||||||
// 验签通过,处理业务逻辑
|
|
||||||
if (check) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付宝PC网站支付
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
@Post('/aliPc')
|
|
||||||
async aliPc() {
|
|
||||||
const orderNum = await this.aliPay.createOrderNum();
|
|
||||||
const formData = new AlipayFormData();
|
|
||||||
// 调用 setMethod 并传入 get,会返回可以跳转到支付页面的 url
|
|
||||||
formData.setMethod('get');
|
|
||||||
formData.addField('notifyUrl', this.aliPayConfig.notifyUrl);
|
|
||||||
formData.addField('bizContent', {
|
|
||||||
outTradeNo: orderNum,
|
|
||||||
productCode: 'FAST_INSTANT_TRADE_PAY',
|
|
||||||
totalAmount: '0.01',
|
|
||||||
subject: '商品',
|
|
||||||
body: '商品详情',
|
|
||||||
});
|
|
||||||
// 返回支付链接
|
|
||||||
const result = await this.aliPay
|
|
||||||
.getInstance()
|
|
||||||
.exec('alipay.trade.page.pay', {}, { formData });
|
|
||||||
return this.ok(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付宝APP支付
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
@Post('/aliApp')
|
|
||||||
async aliApp() {
|
|
||||||
const orderNum = await this.aliPay.createOrderNum();
|
|
||||||
|
|
||||||
// 返回支付链接
|
|
||||||
const data = sign(
|
|
||||||
'alipay.trade.app.pay',
|
|
||||||
{
|
|
||||||
notifyUrl: this.aliPayConfig.notifyUrl,
|
|
||||||
bizContent: {
|
|
||||||
subject: '商品标题',
|
|
||||||
totalAmount: '0.01',
|
|
||||||
outTradeNo: orderNum,
|
|
||||||
productCode: 'QUICK_MSECURITY_PAY',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
this.aliPay.getInstance().config
|
|
||||||
);
|
|
||||||
const payInfo = new URLSearchParams(data).toString();
|
|
||||||
return this.ok(payInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付宝支付回调通知
|
|
||||||
*/
|
|
||||||
@Post('/aliNotify')
|
|
||||||
async aliNotify(@Body() body) {
|
|
||||||
const { ciphertext, associated_data, nonce } = body.resource;
|
|
||||||
// 解密数据
|
|
||||||
const data = this.wxPay
|
|
||||||
.getInstance()
|
|
||||||
.decipher_gcm(ciphertext, associated_data, nonce);
|
|
||||||
console.log(data);
|
|
||||||
const check = await this.aliPay.signVerify(body);
|
|
||||||
// 验签通过,处理业务逻辑
|
|
||||||
if (check) {
|
|
||||||
}
|
|
||||||
return 'success';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
import { BaseUpload, MODETYPE } from './interface';
|
import { BaseUpload, MODETYPE } from './interface';
|
||||||
import { BasePluginHook } from '../base';
|
import { BasePluginHook } from '../base';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as download from 'download';
|
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { v1 as uuid } from 'uuid';
|
import { v1 as uuid } from 'uuid';
|
||||||
@ -40,6 +39,7 @@ export class PluginUpload extends BasePluginHook implements BaseUpload {
|
|||||||
const { domain } = this.pluginInfo.config;
|
const { domain } = this.pluginInfo.config;
|
||||||
// 从url获取扩展名
|
// 从url获取扩展名
|
||||||
const extend = path.extname(url);
|
const extend = path.extname(url);
|
||||||
|
const download = require('download');
|
||||||
// 数据
|
// 数据
|
||||||
const data = url.includes('http')
|
const data = url.includes('http')
|
||||||
? await download(url)
|
? await download(url)
|
||||||
|
Loading…
Reference in New Issue
Block a user