提交 45cdf350 authored 作者: JarvanMo's avatar JarvanMo

check universal link when register

上级 12e9d045
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
...@@ -142,9 +143,16 @@ Future register( ...@@ -142,9 +143,16 @@ Future register(
/// [universalLink] is required if you want to register on iOS. /// [universalLink] is required if you want to register on iOS.
Future registerWxApi( Future registerWxApi(
{String appId, {String appId,
bool doOnIOS: true, bool doOnIOS: true,
bool doOnAndroid: true, bool doOnAndroid: true,
String universalLink}) async { String universalLink}) async {
if (doOnIOS && Platform.isIOS) {
if (universalLink.trim().isEmpty || !universalLink.startsWith("https")) {
throw ArgumentError.value(universalLink,
"your universal link is illegal, see https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html for detail");
}
}
return await _channel.invokeMethod("registerApp", { return await _channel.invokeMethod("registerApp", {
"appId": appId, "appId": appId,
"iOS": doOnIOS, "iOS": doOnIOS,
...@@ -288,7 +296,8 @@ Future sendAuth({String openId, @required String scope, String state}) async { ...@@ -288,7 +296,8 @@ Future sendAuth({String openId, @required String scope, String state}) async {
/// Once AuthCode got, you need to request Access_Token /// Once AuthCode got, you need to request Access_Token
/// For more information please visit: /// For more information please visit:
/// * https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token= /// * https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=
Future sendWeChatAuth({String openId, @required String scope, String state}) async { Future sendWeChatAuth(
{String openId, @required String scope, String state}) async {
// "scope": scope, "state": state, "openId": openId // "scope": scope, "state": state, "openId": openId
assert(scope != null && scope.trim().isNotEmpty); assert(scope != null && scope.trim().isNotEmpty);
...@@ -332,11 +341,11 @@ Future authByQRCode( ...@@ -332,11 +341,11 @@ Future authByQRCode(
/// see * https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=215238808828h4XN&token=&lang=zh_CN /// see * https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=215238808828h4XN&token=&lang=zh_CN
Future authWeChatByQRCode( Future authWeChatByQRCode(
{@required String appId, {@required String appId,
@required String scope, @required String scope,
@required String nonceStr, @required String nonceStr,
@required String timeStamp, @required String timeStamp,
@required String signature, @required String signature,
String schemeData}) async { String schemeData}) async {
assert(appId != null && appId.isNotEmpty); assert(appId != null && appId.isNotEmpty);
assert(scope != null && scope.isNotEmpty); assert(scope != null && scope.isNotEmpty);
assert(nonceStr != null && nonceStr.isNotEmpty); assert(nonceStr != null && nonceStr.isNotEmpty);
...@@ -359,13 +368,11 @@ Future stopAuthByQRCode() async { ...@@ -359,13 +368,11 @@ Future stopAuthByQRCode() async {
return await _channel.invokeMethod("stopAuthByQRCode"); return await _channel.invokeMethod("stopAuthByQRCode");
} }
/// stop auth /// stop auth
Future stopWeChatAuthByQRCode() async { Future stopWeChatAuthByQRCode() async {
return await _channel.invokeMethod("stopAuthByQRCode"); return await _channel.invokeMethod("stopAuthByQRCode");
} }
/// open mini-program /// open mini-program
/// see [WXMiniProgramType] /// see [WXMiniProgramType]
@Deprecated("use launchWeChatMiniProgram instead") @Deprecated("use launchWeChatMiniProgram instead")
...@@ -385,8 +392,8 @@ Future launchMiniProgram( ...@@ -385,8 +392,8 @@ Future launchMiniProgram(
/// see [WXMiniProgramType] /// see [WXMiniProgramType]
Future launchWeChatMiniProgram( Future launchWeChatMiniProgram(
{@required String username, {@required String username,
String path, String path,
WXMiniProgramType miniProgramType = WXMiniProgramType.RELEASE}) async { WXMiniProgramType miniProgramType = WXMiniProgramType.RELEASE}) async {
assert(username != null && username.trim().isNotEmpty); assert(username != null && username.trim().isNotEmpty);
return await _channel.invokeMethod("launchMiniProgram", { return await _channel.invokeMethod("launchMiniProgram", {
"userName": username, "userName": username,
...@@ -395,7 +402,6 @@ Future launchWeChatMiniProgram( ...@@ -395,7 +402,6 @@ Future launchWeChatMiniProgram(
}); });
} }
/// true if WeChat is installed,otherwise false. /// true if WeChat is installed,otherwise false.
/// However,the following key-value must be added into your info.plist since iOS 9: /// However,the following key-value must be added into your info.plist since iOS 9:
/// <key>LSApplicationQueriesSchemes</key> /// <key>LSApplicationQueriesSchemes</key>
...@@ -437,19 +443,17 @@ Future pay( ...@@ -437,19 +443,17 @@ Future pay(
}); });
} }
/// params are from server /// params are from server
Future payWithWeChat( Future payWithWeChat(
{@required String appId, {@required String appId,
@required String partnerId, @required String partnerId,
@required String prepayId, @required String prepayId,
@required String packageValue, @required String packageValue,
@required String nonceStr, @required String nonceStr,
@required int timeStamp, @required int timeStamp,
@required String sign, @required String sign,
String signType, String signType,
String extData}) async { String extData}) async {
return await _channel.invokeMethod("payWithFluwx", { return await _channel.invokeMethod("payWithFluwx", {
"appId": appId, "appId": appId,
"partnerId": partnerId, "partnerId": partnerId,
...@@ -463,7 +467,6 @@ Future payWithWeChat( ...@@ -463,7 +467,6 @@ Future payWithWeChat(
}); });
} }
/// subscribe message /// subscribe message
@Deprecated("use subscribeWeChatMsg instead") @Deprecated("use subscribeWeChatMsg instead")
Future subscribeMsg({ Future subscribeMsg({
...@@ -532,21 +535,20 @@ Future autoDeDuct( ...@@ -532,21 +535,20 @@ Future autoDeDuct(
}); });
} }
/// please read official docs. /// please read official docs.
Future autoDeDuctWeChat( Future autoDeDuctWeChat(
{@required String appId, {@required String appId,
@required String mchId, @required String mchId,
@required String planId, @required String planId,
@required String contractCode, @required String contractCode,
@required String requestSerial, @required String requestSerial,
@required String contractDisplayAccount, @required String contractDisplayAccount,
@required String notifyUrl, @required String notifyUrl,
@required String version, @required String version,
@required String sign, @required String sign,
@required String timestamp, @required String timestamp,
String returnApp = '3', String returnApp = '3',
int businessType = 12}) async { int businessType = 12}) async {
return await _channel.invokeMethod("autoDeduct", { return await _channel.invokeMethod("autoDeduct", {
'appid': appId, 'appid': appId,
'mch_id': mchId, 'mch_id': mchId,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论