あなたのアプリにbKashを統合する(Android/iOS)
アプリにbKashを統合する
決済プラットフォームの専門家として、bKash決済システムをモバイルアプリに統合する方法をご案内いたします。下記は詳細なステップバイステップガイドです:
1.事前準備
- マーチャントアカウントの登録: まず最初に、新しいファイルをbKash マーチャントポータル登録し、必要なAPI認証情報を取得する
- 統合タイプを選択チェックアウトAPI(シンプル)とペイメントAPI(より柔軟)のどちらが必要かを判断する。
- APIドキュメントの入手最新の API ドキュメントと SDK を bKash 開発者ポータルからダウンロードする。
2.Androidアプリケーションの統合手順
a. 依存関係の追加
実装 'com.bkash:paymentgateway:3.0.0'
b. SDKの初期化
BkashPayment bkashPayment = new BkashPayment();
bkashPayment.init(this, "YOUR_MERCHANT_API_KEY", "YOUR_MERCHANT_USERNAME");
c. 支払いリクエストの作成
JSONObject paymentRequest = new JSONObject();
を試す。
paymentRequest.put("金額", "100");
paymentRequest.put("intent", "sale");
// ...その他の必要なパラメーター
} catch (JSONException e) {.
e.printStackTrace();
}
3. iOSアプリケーションの統合手順
a. CocoaPodsのインストール
ポッド 'bKashiOSFramework'
b. スイフト初期化コード例
let bkashiOS = BkashiOS.sharedInstance()
bkashiOS?.initialise(withMerchantID: "YOUR_MERCHANT_ID"、
マーチャントユーザー名:"YOUR_USERNAME"、
apiKey: "YOUR_API_KEY")
4.ウェブ/バックエンド統合要素
- コールバックURLの検証成功/失敗のコールバックURLエンドポイントが正しく設定されていることを確認する。
- IPN処理非同期通知を処理するための即時支払い通知リスナーを実装する。
- 安全対策::
- SSL証明書が有効で最新であること。
- OAuth2認証プロセスが正しく実装されている
5.テストと本番稼動に関する考慮事項
すべてのシナリオ(成功、失敗、キャンセルなど)をテストするサンドボックス環境。
✅ UI適応チェック(特にダークカラーモードでの表示問題)
✅ PCI DSS コンプライアンス審査(機密データが保存されている場合)
実装の特定の部分について、より具体的な詳細が必要ですか?言語固有のコード例やエラー処理のベストプラクティスなどですか?
bKash決済統合の詳細
引き続き、bKash統合の主要な側面についての詳細な概要を提供させていただきます。以下は、より詳細な導入ガイドです:
1.アンドロイドとの深い統合
a. 支払い手続きの完了
// 全額支払いリクエストのサンプルを作成する
BkashPaymentRequest request = new BkashPaymentRequest.Builder()
.setAmount("500.50")
.setMerchantInvoiceNumber("ORD "+System.currentTimeMillis())
.setCallbackURL("https://yourdomain.com/bkash/callback")
.build();
bkashPayment.createPayment(リクエスト、新しいPaymentListener() {。
オーバーライド
public void onSuccess(JSONObject data) { {.
// サーバー側のトランザクションIDを検証しなければならない
文字列 paymentID = data.optString("paymentID");
verifyWithBackend(paymentID).
}
オーバーライド
public void onFailure(String errorMessage) { { このような場合は、次のようにします。
showErrorDialog(errorMessage);
}
});
b. WebViewカスタム構成(必要な場合)
<activity android:name="com.bka.sh.pgw.ui.PaymentActivity"
android:theme="@style/YourCustomTheme" />
2. iOSの高度な機能の実装
a. スイフトUI適応プログラム
構造体 BkashButton: UIViewRepresentable {.
var amount: 文字列
func makeUIView(context: Context) -> UIButton { ... }
func updateUIView(_ uiView: UIButton, context: Context) { ... }
}
b. Objective-C互換のコード例(必要な場合)
[BkashiOS sharedInstance] createPayment:@{.
金額": "1200"。
通貨": BDT。
} completionHandler^(NSDictionary *response, NSError *error){.
if(!error){ /* レスポンス成功時の処理 */ }.
}];
3.Webhookセキュリティ認証のベストプラクティス
バックエンドPHPバリデーションの例:
$received_signature = $_SERVER['HTTP_X_BKASH_SIGNATURE'];
$payload = file_get_contents('php://input');
$expected_signature = hash_hmac('sha256', $payload, API_SECRET);
if(hash_equals($expected_signature, $received_signature)){。
// 安全な処理ロジック...
$transaction_id = json_decode($payload)->paymentID;
updateOrderStatus($transaction_id).
}
Java Spring Boot Editionの署名検証:
ポストマッピング("/webhook")
public ResponseEntity handleWebhook(
文字列ペイロード、@RequestBody 文字列ペイロード、@RequestBody
@RequestHeader("X-BKASH-Signature")文字列シグネチャ){。
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
sha256_HMAC.init(newSecretKeySpec(apiSecret.getBytes(), "HmacSHA256"));
byte[] result = sha256_HMAC.doFinal(payload.getBytes());
String computedSignature = Hex.encodeHexString(result);
if(computedSignature.equals(signature)){...}。
}
4.よくある問題の解決策
問題現象 | 考えられる原因 | 処方 |
---|---|---|
エラーコード:5015 | SSL証明書の不一致 | CAルート証明書の更新 |
アプリが棚へのアクセスを拒否 | SDKのパーミッションが多すぎる | プロガードルールの最適化 + 必要なパーミッションのみ適用 |
次のうち、どれを強調すればいい?:
1️⃣ 返金処理に関するAPIインターフェースの詳細
2️⃣ 複数通貨決済の特別扱い
3️⃣ React Native/Flutterとのハイブリッド開発統合アプローチ