提交 00c31596 authored 作者: yueweilu's avatar yueweilu

待支付

上级 093163d3
......@@ -460,5 +460,38 @@ abstract class MineAPI {
return false;
}
/// 26、获取支付信息
static Future <PayOrderModel> getPayInfo({
required String ordersNum,
}) async {
final result = await HttpService.to.post(
'/v1/orders/Orders/payAgain',
params: {
'ordersNum':ordersNum,
},
showLoading: true
);
if (result.data is! Map) return PayOrderModel();
return PayOrderModel.fromJson(result.data);
}
/// 27、紫荆币支付
static Future<bool> coinPay({
required String ordersNum,
}) async {
final result = await HttpService.to.post(
'/v1/book/Information/editNotes',
params: {
'ordersNum':ordersNum,
},
showLoading: true
);
if (result.data is Map && result.data['is_success'] == 1) {
return true;
}
return false;
}
}
......@@ -170,6 +170,7 @@ class PayOrderModel {
this.ordersnum,
this.encryptionOrder,
this.code,
this.isMoneys,
String? msg,
});
......@@ -185,6 +186,7 @@ class PayOrderModel {
encryptionOrder = json['encryption_order'];
code = json['code'];
msg = json['msg'];
isMoneys = json['is_moneys'];
}
String? appid;
String? partnerid;
......@@ -197,6 +199,7 @@ class PayOrderModel {
String? encryptionOrder;
num? code;
String? msg;
num? isMoneys;
PayOrderModel copyWith({ String? appid,
String? partnerid,
String? prepayid,
......@@ -208,6 +211,7 @@ class PayOrderModel {
String? encryptionOrder,
num? code,
String? msg,
num? isMoneys,
}) => PayOrderModel( appid: appid ?? this.appid,
partnerid: partnerid ?? this.partnerid,
prepayid: prepayid ?? this.prepayid,
......@@ -219,6 +223,7 @@ class PayOrderModel {
encryptionOrder: encryptionOrder ?? this.encryptionOrder,
code: code ?? this.code,
msg: msg?? this.msg,
isMoneys: isMoneys?? this.isMoneys
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
......@@ -233,6 +238,7 @@ class PayOrderModel {
map['encryption_order'] = encryptionOrder;
map['code'] = code;
map['msg'] = msg;
map['is_moneys'] = isMoneys;
return map;
}
......
......@@ -17,7 +17,7 @@ class _AdDetailPageState extends State<AdDetailPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('用户协议'),
),
body: InAppWebView(
initialUrlRequest: URLRequest(
......
......@@ -194,13 +194,21 @@ class BookPayController extends GetxController {
// 微信
if(payModel.type == 1){
String orderNumber = payOrderModel.ordersnum.toString();
if(payOrderModel.isMoneys == 0){
requestOrderStatus();
}else {
requestWechat();
}
}
// 支付宝
else if(payModel.type == 2){
String orderNumber = payOrderModel.ordersnum.toString();
if(payOrderModel.isMoneys == 0){
requestOrderStatus();
}else {
requestAliPay();
}
}
// 书豆
else if (payModel.type == 3){
if(payOrderModel.code == -1){
......
......@@ -9,6 +9,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:go_router/go_router.dart';
import '../../routes/index.dart';
import '../../theme.dart';
import '../../utils/index.dart';
import '../../widgets/index.dart';
......
......@@ -31,9 +31,14 @@ class _UserLovePageState extends State<UserLovePage> {
child: ListView.builder(
itemBuilder: (BuildContext context, int index){
CourseModel model = controller.loves[index];
return BuildItem(model: model,onTap: (){
return GestureDetector(
onTap: (){
context.pushNamed(Routes.bookDetail,queryParameters: {'book_id':model.bookId.toString()});
},
child: BuildItem(model: model,onTap: (){
controller.unLoved(bookId: model.bookId.toString());
},);
},),
);
},
itemCount: controller.loves.length,
),
......
......@@ -10,6 +10,13 @@ class UserOrderAwaitingController extends GetxController {
// 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = [];
// 支付宝
Tobias tobias = Tobias();
// 微信
Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel;
@override
void onReady() {
......@@ -49,4 +56,84 @@ class UserOrderAwaitingController extends GetxController {
update();
}
Future<void> payOrder() async {
if (model.payType == 3){
final result = await MineAPI.coinPay(ordersNum: orderNum);
if (result){
Toast.show('订单支付完成');
getOrderInfo();
}
}
else{
payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum);
// 支付宝
if (model.payType == 2){
final result = await tobias.isAliPayInstalled;
if(!result){
Toast.show('请先安装支付宝');
}
else{
requestAliPay();
}
}
// 微信
if (model.payType ==1){
final result = await fluwx.isWeChatInstalled;
if(!result){
Toast.show('请先安装微信');
}
else{
requestWechat();
}
}
}
}
// 支付宝支付
void requestAliPay(){
print('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
if (payResult['resultStatus'] == '9000') {
requestOrderStatus();
} else {
Toast.show(payResult['memo'].toString());
}
});
}
// 微信支付
void requestWechat(){
Payment payment = Payment(
appId: payOrderModel.appid??'',
partnerId: payOrderModel.partnerid??'',
prepayId: payOrderModel.prepayid??'',
packageValue: payOrderModel.package??'',
nonceStr: payOrderModel.noncestr??'',
timestamp: payOrderModel.timestamp!.toInt(),
sign: payOrderModel.sign??''
);
fluwx.pay(which: payment);
fluwx.addSubscriber((response) {
if (response.errCode == 0) {
requestOrderStatus();
}
else{
Toast.show('${response.errStr}');
}
});
}
void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){
Toast.show('订单支付完成');
getOrderInfo();
}
}
}
......@@ -7,11 +7,13 @@ import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart';
import 'package:flutter_book/widgets/index.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart';
import 'package:go_router/go_router.dart';
import 'package:tobias/tobias.dart';
import '../../apis/index.dart';
import '../../models/index.dart';
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论