A H5 payment (such as Alipay, WeChat Pay) plugin for flutter.
Use the showH5PayDialog
method to show a loading dialog and jump to payment app. When user switches from payment app back to your app, you can check payment result with your server in the verifyResult
callback (Optional).
import 'package:h5pay/h5pay.dart';
final PaymentStatus status = await showH5PayDialog(
context: context,
// You can get payment url (normally is http or payment app scheme) from server in the getPaymentArguments callback
getPaymentArguments: () async => PaymentArguments(
url: 'https://is.gd/4cLE6j',
redirectSchemes: ['alipay', 'alipays', 'weixin', 'wechat'],
httpHeaders: {
'referer': 'https://xxx',
},
),
verifyResult: () async => true, // check order result with your server
);
if (status == PaymentStatus.success) {
// Do something
}
Values of PaymentStatus
:
enum PaymentStatus {
idle,
gettingArguments,
getArgumentsFail,
launchingUrl,
cantLaunchUrl, // Maybe target payment app is not installed
launchUrlTimeout, // Maybe redirecting url is fail
jumping,
jumpTimeout,
verifying,
success,
fail,
}
Info.plist
file. Just like:<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
<string>alipay</string>
<string>alipays</string>
</array>
If you have more complex requirements, you can use the H5PayWidget
. Check the example for more detail.