Toggle navigation
Toggle navigation
This project
Loading...
Sign in
OnePoem
/
OnePoem-App
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
ChadCSong
2022-12-21 21:56:41 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d23ae0cd8a3d2d23676a4254d7dfb0bd07d2ad18
d23ae0cd
1 parent
65267475
苹果订阅相关
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
1 deletions
lib/apis/api_order.dart
lib/payment/payment_sdk.dart
lib/apis/api_order.dart
View file @
d23ae0c
...
...
@@ -24,4 +24,19 @@ class OrderApi extends BaseApi {
return
json
.
decode
(
value
.
data
);
});
}
Future
<
dynamic
>
verifyOrder
(
String
orderId
,
String
type
,
String
token
,
{
Map
<
String
,
dynamic
>?
others
})
{
var
data
=
{
"order_sn"
:
orderId
,
"pay_type"
:
type
,
"token"
:
token
,
"others"
:
others
??
{},
};
return
post
(
"pay"
,
data:
data
).
then
((
value
)
{
if
(
TextUtil
.
isEmpty
(
value
.
data
))
{
return
{};
}
return
value
.
data
;
});
}
}
...
...
lib/payment/payment_sdk.dart
View file @
d23ae0c
...
...
@@ -4,8 +4,12 @@ import 'package:Parlando/apis/api_order.dart';
import
'package:Parlando/membership/models/membership_entity.dart'
;
import
'package:common_utils/common_utils.dart'
;
import
'package:in_app_purchase/in_app_purchase.dart'
;
import
'package:in_app_purchase_android/in_app_purchase_android.dart'
;
import
'package:in_app_purchase_storekit/in_app_purchase_storekit.dart'
;
class
PaymentSdk
{
var
currentOrder
;
PaymentSdk
.
_privateConstructor
();
static
final
PaymentSdk
_instance
=
PaymentSdk
.
_privateConstructor
();
...
...
@@ -59,6 +63,7 @@ class PaymentSdk {
onFailed
?.
call
();
return
;
}
currentOrder
=
orderId
;
final
PurchaseParam
purchaseParam
=
PurchaseParam
(
productDetails:
details
,
applicationUserName:
orderId
);
if
(
_isConsumable
(
details
))
{
InAppPurchase
.
instance
.
buyConsumable
(
purchaseParam:
purchaseParam
);
...
...
@@ -97,7 +102,30 @@ class PaymentSdk {
}
void
_deliverProduct
(
PurchaseDetails
purchaseDetails
)
{
onPaySuccess
?.
call
();
String
type
=
""
;
Map
<
String
,
dynamic
>
otherField
=
{};
if
(
purchaseDetails
is
GooglePlayPurchaseDetails
)
{
currentOrder
=
purchaseDetails
.
billingClientPurchase
.
obfuscatedAccountId
;
type
=
"google"
;
otherField
[
"google"
]
=
{
"originalJson"
:
purchaseDetails
.
billingClientPurchase
.
originalJson
,
};
}
if
(
purchaseDetails
is
AppStorePurchaseDetails
)
{
type
=
"apple"
;
otherField
[
"apple"
]
=
{
"transactionIdentifier"
:
purchaseDetails
.
skPaymentTransaction
.
transactionIdentifier
,
"originalTransactionIdentifier"
:
purchaseDetails
.
skPaymentTransaction
.
originalTransaction
?.
transactionIdentifier
??
""
,
};
}
var
serverVerifyStr
=
purchaseDetails
.
verificationData
.
serverVerificationData
;
var
verifySource
=
purchaseDetails
.
verificationData
.
source
;
otherField
[
"source"
]
=
verifySource
;
OrderApi
.
request
.
verifyOrder
(
currentOrder
,
type
,
serverVerifyStr
,
others:
otherField
).
then
((
value
)
{
if
(
value
!=
null
)
{}
onPaySuccess
?.
call
();
});
}
void
_handleInvalidPurchase
(
PurchaseDetails
purchaseDetails
)
{
...
...
Please
register
or
login
to post a comment