Google有料とアップルは、フラッタのストライプを使用して支払う
たくさんのスイッチングパッケージの後に、gradleを設定し、PODをインストールして動作させます.私は最終的にGoogleが有料図書館の導入でこの戦いに終止符を打つのを見てうれしいです.名前としては、本当に簡単でまっすぐに、まだ私はインターネット上のいくつかのリソースが不足しているので、本当に素晴らしい何かを開発に焦点を当てることができるように短い時間でそのような機能を実装するのに役立つリソースを必要があります.
私は非常に単純な行のペースト束をコピーすることができますし、それを動作させる非常にシンプルにしています.
まず第一に、あなたは以下を必要とします ストライプアカウントと発行可能キー ストライプを有効にしてから証明書をアップロードhere
グーグルマーチャントアカウントhere
さあ始めましょう.
構成
アップルペイ
そして、以下のJSONファイルはあなたの資産ファイルとして
グーグルペイ
そして、以下のJSONファイルはあなたの資産ファイルとして
フラッターコード
パッケージのインストール
インサイド・ユア
パッケージの初期化
あなたのコードベースのどこかで、あなたがちょうど加えた資産から上記のJSONファイルでパッケージを最初に有効にします.
有効性チェック
したら、パッケージを有効にすると、今すぐあなたの支払いサービスの可用性をチェックすることができます.利用できるプロバイダの配列を維持するためにリンクします.
表示アップルボタンを表示
オプション1(最も速い)(この1つまたは他のいずれか、私は2番目の1つを好む)
あなたは直接支払いを行うように開始するウィジェット上のすべてを書くことによって支払いを直接処理することができます提供されるネイティブの有料ボタンを使用することができます. グーグル有料ボタン
アップルペイ
オプション2(最高、IMO)
ビジネスコードとUIコードを分離する場合は、これはあなたのためのものです.ウィジェットを使用する代わりに、任意のウィジェットを使用することができますApple Pay or Google Pay )
応答から、あなたが必要とするすべては、以下の通りでなければならないトークンです
サーバ側
ユーザーのカードに実際にチャージする
あなたがトークンを持っているならば、あなたは現在、支払いを処理するために、バックエンド・コード(フラッター(推薦されない)であることもできます)を持つ必要があります.私はノードを使用しています.JSサーバーは、モバイルからトークンを使用して支払いを処理する.
パッケージのインストール
パッケージの初期化
充電する
今、あなたはストライプで行うことができます他のクールなものがあります.チェックアウト・ストライプdocumentation より多くの機能.
私は非常に単純な行のペースト束をコピーすることができますし、それを動作させる非常にシンプルにしています.
まず第一に、あなたは以下を必要とします
構成
アップルペイ
そして、以下のJSONファイルはあなたの資産ファイルとして
/assets/apple_pay.json
フォルダ{
"provider": "apple_pay",
"data": {
"merchantIdentifier": "<Merchant ID from developer.apple.com>",
"displayName": "<Display Name>",
"merchantCapabilities": [
"3DS",
"debit",
"credit"
],
"supportedNetworks": [
"amex",
"visa",
"discover",
"masterCard"
],
"countryCode": "FR", // Country code
"currencyCode": "EUR", // Currency code
"requiredBillingContactFields": null,
"requiredShippingContactFields": null
}
}
グーグルペイ
そして、以下のJSONファイルはあなたの資産ファイルとして
/assets/google_pay.json
フォルダ{
"provider": "google_pay",
"data": {
"environment": "TEST",
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "stripe",
"stripe:version": "2020-08-27",
"stripe:publishableKey": "<stripe publishable key, eg pk_.......>"
}
},
"parameters": {
"allowedCardNetworks": [
"VISA",
"MASTERCARD"
],
"allowedAuthMethods": [
"PAN_ONLY",
"CRYPTOGRAM_3DS"
],
"billingAddressRequired": false
}
}
],
"merchantInfo": {
"merchantId": "<Merchant ID from pay.google.com/business>",
"merchantName": "<Display Name>"
},
"transactionInfo": {
"countryCode": "FR",
"currencyCode": "EUR"
}
}
}
フラッターコード
パッケージのインストール
インサイド・ユア
pubspec.yaml
ファイル追加pay: 1.0.3 # Latest one at the time of writing
パッケージの初期化
あなたのコードベースのどこかで、あなたがちょうど加えた資産から上記のJSONファイルでパッケージを最初に有効にします.
Pay _pay = Pay.withAssets(["google_pay.json","apple_pay.json"]);
有効性チェック
したら、パッケージを有効にすると、今すぐあなたの支払いサービスの可用性をチェックすることができます.利用できるプロバイダの配列を維持するためにリンクします.
List<PayProvider> availableProviders = [];
PayProvider.values.forEach((e) async {
bool canPay = await _pay.userCanPay(e);
if (canPay) availableProviders.add(e);
});
表示アップルボタンを表示
オプション1(最も速い)(この1つまたは他のいずれか、私は2番目の1つを好む)
あなたは直接支払いを行うように開始するウィジェット上のすべてを書くことによって支払いを直接処理することができます提供されるネイティブの有料ボタンを使用することができます.
if(availableProviders.contains(PayProvider.google_pay))
GooglePayButton(
paymentConfigurationAsset: "google_pay.json",
onPaymentResult: (Map data){
print(data);
},
paymentItems: [ // You can have multiple items on your payment
PaymentItem(
amount: "100", // Your amount
label: "AwesomeProduct", // Your amount title
status: pay.PaymentItemStatus.final_price, // Status of the payment
type: pay.PaymentItemType.total, // Type of the payment
)
],
)
if(availableProviders.contains(PayProvider.apple_pay))
ApplePayButton(
paymentConfigurationAsset: "apple_pay.json",
onPaymentResult: (Map data){
print(data);
},
paymentItems: [ // You can have multiple items on your payment
PaymentItem(
amount: "100", // Your amount
label: "AwesomeProduct", // Your amount title
status: pay.PaymentItemStatus.final_price, // Status of the payment
type: pay.PaymentItemType.total, // Type of the payment
)
],
)
オプション2(最高、IMO)
ビジネスコードとUIコードを分離する場合は、これはあなたのためのものです.ウィジェットを使用する代わりに、任意のウィジェットを使用することができますApple Pay or Google Pay )
Map<String, dynamic> data = await _pay.showPaymentSelector(
provider: provider // Can be supported provider (PayProvider.apple_pay, PayProvider.google_pay),
paymentItems: [
PaymentItem(
label: "Awesome Product",
amount: "100",
type: PaymentItemType.item,
status: PaymentItemStatus.final_price,
),
],
);
オプションのいずれかの後、あなたはMap data
. それがマップであり、型付けされた値でない理由は、すべてのプロバイダーが複数のプロバイダーをサポートするように、独自のパターンでレスポンスを返します.パッケージは、パッケージを可能な限り生のようにするためにマップするようにしています.応答から、あなたが必要とするすべては、以下の通りでなければならないトークンです
String tokenToBeSentToCloud = data["token"];
サーバ側
ユーザーのカードに実際にチャージする
あなたがトークンを持っているならば、あなたは現在、支払いを処理するために、バックエンド・コード(フラッター(推薦されない)であることもできます)を持つ必要があります.私はノードを使用しています.JSサーバーは、モバイルからトークンを使用して支払いを処理する.
パッケージのインストール
npm install stripe
or yarn add stripe
パッケージの初期化
export const stripe = new Stripe("<stripe_secret_key>", {
apiVersion: "2020-08-27"
});
充電する
const paymentMethod = await stripe.paymentMethods.create({
type: "card",
card: {
token: "<token from pay package>"
}
})
await stripe.paymentIntents.create({
amount: 10000, // Amount in cents, can be different from what you presented on the pay dialog on mobiel
currency: "EUR", // Currentcy
capture_method: "automatic", //
customer: "<Optional, if you have customer on stripe>",
payment_method: paymentMethod.id,
receipt_email: "<If you want to send reciept in email>,
statement_descriptor: "<Statement Label(max 22 chars)>",
confirm: true, // True charges the card instantly
description: "Product description"
})
Voila、あなただけのユーザーを充電します.今、あなたはストライプで行うことができます他のクールなものがあります.チェックアウト・ストライプdocumentation より多くの機能.
Reference
この問題について(Google有料とアップルは、フラッタのストライプを使用して支払う), 我々は、より多くの情報をここで見つけました https://dev.to/aawazgyawali/how-to-use-google-pay-and-apple-pay-using-stripe-on-flutter-2i1jテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol