パキスタン決済APIとのインターフェース 開発実践チュートリアル
パキスタン決済APIとのインターフェース 開発実践チュートリアル
パキスタンの決済市場の概要
南アジア第二の経済大国であるパキスタンは、近年デジタル決済が急成長している。パキスタン国立銀行(SBP)によると、同国のモバイルウォレット利用者は2022年に5,000万人を超え、電子取引量は前年比45%増加した。パキスタン市場への参入を希望する企業にとって、現地の主流の決済方法を理解し、APIドッキングを実現することは極めて重要である。
主な決済チャネルは以下の通り:
- ジャズキャッシュ(モバイルウォレット最大手)
- イージーパイサ(テレノール所有)
- HBLコネクト(ハビバンク電子財布)
- パキスタンにおけるユニオンペイ・インターナショナル(UPI)協力チャンネル
- ローカル・バンクカード 1Link/PTCLシステム
II.予備準備作業
1.マーチャントアカウントの登録
対象となる支払いプラットフォームの公式ウェブサイト(例:JazzCash の加盟店ページ)にアクセスし、送信します:
- 会社登記書類
- NTN納税者番号証明書
- 取締役の身分証明
APIドッキング技術の実装ステップ
1.APIドキュメントとテスト環境を入手する
加盟店登録が完了すると、決済プラットフォームは通常以下のリソースを提供する:
- サンドボックス・テスト口座(デモ取引用)
- APIドキュメント(主にREST/JSON形式)
- SDKまたはコードサンプル(プラットフォームによってはJava/PHP/Pythonライブラリが提供されています)
主要な設定項目:
「バッシュ
# JazzCashの代表的な構成例
api_endpoint = "https://sandbox.jazzcash.com.pk/api/v1/payment"
merchant_id = "your_merchant_id"
SECURE_HASH_KEY = "xxxxxx" #(署名検証用
callback_url = "https://yourdomain.com/callback"
“`
2.インターフェース認証とセキュリティ・メカニズム
パキスタンの決済APIでは、以下のセキュリティ・ソリューションが一般的に使用されている:
| セキュリティ・メカニズム
|—————-|———————————————————————-|
| OAuth2.0|EasyPaisaやその他のプラットフォームでは、最初にaccess_tokenが必要です。
| IPホワイトリスト|加盟店バックエンドのサーバーIPバインディングが必要です。
| HMAC-SHA256|JazzCashなどは、署名を生成するためにリクエスト・パラメーターを順番に並べる必要がある。
PHP署名生成の例:
"`php
$data = [
'amount' => '1000'、
'orderId' => 'ORD123456'、
'timestamp' => time()
];
ksort($data); // キー名でソートする。
$signature = hash_hmac('sha256', http_build_query($data), $SECURE_HASH_KEY);
“`
—
3.コア・インターフェース開発の実践
(1) 支払い請求を開始する
典型的なHTTP POSTリクエストの構造:
"`json
// JazzCash 支払いリクエストの例
{
「pp_Version": "1.1"、
「pp_TxnType」:「MWALLET」。
「pp_Language": "EN".
pp_MERCHANTID:商人ID、
pp_SubMerchantID: ""、
pp_Password: API_PASSWORD、
pp_BankID: ""、
pp_ProductID: ""、
pp_TxnRefNo": uniqid()、
}
“`
> 注:金額の単位はルピーに換算する必要がある(例:100PKR≒$0.36)*。
—
(2) 非同期コールバックの処理
ユーザーが支払いを完了すると、プラットフォームはあなたの `CALLBACK_URL` に通知を POST します。必須
1️¦ 署名の正当性を検証する
受信したハッシュ値をローカルで計算したチェックサム値と比較する。
2️ ⃣ パワーハンドリング
重複投稿を避けるための `transaction_id` の使用
3️⃣ 標準フォーマットに対応
HTTP200 と確認メッセージを返す:
「xml
“`
—
IV.一般的な問題のトラブルシューティングのガイドライン
エラーコード `403 禁じられた` ❌。
→ IPがホワイトリストに登録されていないか、ヘッダーが認証されていない。
エラーコード `500 無効なハッシュ`。
→ パラメータの順序が文書と一致しているかチェックし、タイムスタンプの誤差は≤5分である必要があります。
💡 *デバッグのアドバイス*: 正式なシステムに組み込む前に、Postmanでベースプロセスをテストする。
—
基本的なアライメントは上記の手順で完了します。2023年新規制に従ったPSP/EMI資格要件への準拠を確実にするため、[State Bank of Pakistan Policy Updates](https://www.sbp.org.pk)を常にチェックすることをお勧めします。