123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import Taro from "@tarojs/taro";
- import { getUserInfo } from "./login";
- type PublicData = {
- bookId: number,//小说ID
- bookParagraphId: number,//章节ID
- orderCondition: string,//支付场景
- }
- /**现金购买-预下单*/
- export function cashBuy(data: PublicData, callbackFn?: (b:boolean) => void) {
- return new Promise(async (resolve, reject) => {
- try {
- // 初始化
- Taro.request({
- url: '/app/pay/buyout',
- method: 'POST',
- data,
- success: async (res) => {
- let r = await whcatPay(res.data?.data?.wechatMchPayInfo)
- console.log("支付操作完成!!", r)
- callbackFn?.(true)
- resolve(r)
- },
- fail: (err) => {
- reject(err);
- }
- })
- } catch (error) {
- reject(error);
- }
- })
- }
- /**书币购买*/
- export function virtualBuy(data: PublicData, callbackFn?: (b:boolean) => void) {
- return new Promise(async (resolve, reject) => {
- try {
- // 初始化
- Taro.request({
- url: '/app/pay/buyOfCoin',
- method: 'POST',
- data,
- success: async (res) => {
- getUserInfo()//刷新个人信息
- callbackFn?.(true)
- resolve(res)
- },
- fail: (err) => {
- reject(err);
- }
- })
- } catch (error) {
- reject(error);
- }
- })
- }
- interface Data extends PublicData {
- rechargeTemplateId: number,//支付模板ID
- templateIndex: number,//下标
- }
- /**模板购买-预下单*/
- export function templateBuy(data: Data, callbackFn?: (b:boolean) => void) {
- return new Promise(async (resolve, reject) => {
- try {
- // 初始化
- Taro.request({
- url: '/app/pay/buyOfTemplate',
- method: 'POST',
- data,
- success:async (res) => {
- let r = await whcatPay(res.data?.data?.wechatMchPayInfo)
- console.log("支付操作完成!!", r)
- getUserInfo()//刷新个人信息
- callbackFn?.(true)
- resolve(r)
- },
- fail: (err) => {
- reject(err);
- }
- })
- } catch (error) {
- reject(error);
- }
- })
- }
- /**微信支付*/
- type WhcatPay = {
- timeStamp: string,//时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间
- nonceStr: string,//随机字符串,长度为32个字符以下
- package: string,//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=***
- signType: any,//签名算法
- paySign: string,//签名
- }
- export function whcatPay(params: WhcatPay) {
- console.log("微信支付:", params)
- return new Promise(async (resolve, reject) => {
- try {
- // 初始化
- Taro.requestPayment({
- ...params,
- success: (res) => {
- console.log("支付成功:", res)
- Taro.showToast({
- title: '支付成功!',
- icon: 'success'
- });
- resolve(true)
- },
- fail: (err) => {
- console.log("支付失败:", err)
- if (err.errMsg === 'requestPayment:fail cancel') {
- Taro.showToast({
- title: '支付已取消!',
- icon: 'error'
- });
- } else {
- Taro.showToast({
- title: '支付失败,请重试!',
- icon: 'error'
- });
- }
- resolve(false)
- }
- })
- } catch (error) {
- reject(error);
- }
- })
- }
|