私はストライプでFirebaseクラウド機能を使って支払いを処理するAndroidとiOSアプリケーションを持っています。Firebaseクラウド機能(ストライプ:AddPaymentSource)
私はトークン操作を処理してから、リアルタイムデータベースに書き込みます。書込みが完了したら、addPaymentSourceクラウド・ファンクション・トリガーが作成されます。
興味深いことに、iOSでトークンを作成し、その出力を私のサーバーに保存するプロセスは、期待通りに機能します。 iOSの実装をAndroidアプリケーションに複製しようとすると、私の問題が発生します。 Firebaseのクラウド機能は期待どおりに起動しますが、サーバにエラーが出力されています。
サーバーで見つかったエラー:
"The source hash must include an 'object' key indicating what type of source to create."
クライアントコード:
public void tokenizePaymentFields(){
Stripe stripe = new Stripe(getApplicationContext(), stripePublishableKey);
final Card stripeCard = new Card(validCard.getCardNumber()
,Integer.valueOf(validCard.getExpiredDate().substring(0,2)),Integer.valueOf(validCard.getExpiredDate().substring(3,5)),validCard.getCvvCode());
if (!stripeCard.validateCard()) {
Toast.makeText(getApplicationContext(),
"There was an error validating your card.",
Toast.LENGTH_LONG
).show();
return;
}
stripe.createToken(
stripeCard,
new TokenCallback() {
public void onSuccess(Token token) {
// Send token to your server
pushToServer(token);
}
public void onError(Exception error) {
// Show localized error message
activitySubmitCreditCardBinding.progressCircle.setVisibility(View.INVISIBLE);
Toast.makeText(getApplicationContext(),
error.getLocalizedMessage(),
Toast.LENGTH_LONG
).show();
}
}
);
}
ストライプ(Firebaseクラウド機能): https://github.com/firebase/functions-samples/tree/master/stripe
驚くばかりです。ご協力いただきありがとうございます。 – Cari95