nekocode / h5pay-flutter

A H5/HTML5 payment (such as Alipay, WeChat-Pay) plugin for flutter.
Apache License 2.0
42 stars 9 forks source link
flutter widget

h5pay

build status pub package

A H5 payment (such as Alipay, WeChat Pay) plugin for flutter.

Usage

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,
}

Notes

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>wechat</string>
    <string>weixin</string>
    <string>alipay</string>
    <string>alipays</string>
</array>

Advanced

If you have more complex requirements, you can use the H5PayWidget. Check the example for more detail.