GPay インドの支払いオプションをウェブサイトに統合する際にエラーが発生します。不可解なエラー メッセージが表示され、支払いが失敗します。
統合ドキュメントを読みました。この統合は、奇妙なメッセージでエラーになるPayment Requestインターフェイスを使用します。この呼び出しを行うコードは次のとおりです。
request.show()
.then(function (instrument) {
// Process payment - code never reaches here
window.clearTimeout(paymentTimeout);
processResponse(instrument);
})
.catch(function (err) {
console.log(err); // Error here!
});
ウェブサイトを呼び出すrequest.show()
と、Google Pay アプリにリダイレクトされ、そこで受取人の詳細と金額が確認されます。支払いに進むと、アプリに次のエラーが表示されます。
あなたのお金は引き落とされていません
お支払いが承認されませんでした
他の UPI 支払いアプリケーションを介した同じ UPI ID への支払いは、問題なく行われます。このメッセージを閉じると、Web サイトに戻り、次のエラーが表示されます。
DOMException: 支払いアプリが無効な結果を返しました。インテント エクストラがありません。
GPay アカウントが異なるさまざまなデバイスでこれを試してみましたが、結果は同じでした。この支払いリクエストに渡されるパラメータは次のとおりです。
const supportedInstruments = [{
supportedMethods: ['https://tez.google.com/pay'],
data: {
pa: 'xxxx@xxx', // The UPI ID
pn: 'Merchant Name', // The Merchant name
tr: trId, // A unique UUID
url: 'https://xxxxxxx', // The URL of the payment page
mc: '4829', // The merchant category
tn: 'Purchase in Merchant', // Optional note
},
}];
const details = {
total: {
label: 'Total',
amount: {
currency: 'INR',
value: donationValue,
},
},
displayItems: [{
label: 'Donation Amount',
amount: {
currency: 'INR',
value: donationValue,
},
}],
};
これは、支払い要求を行うために必要なすべてのパラメーターをカバーしています。Google Pay ビジネス コンソールで次のことも確認しました。
- お支払いプロファイルが承認されました
- UPI ID が確認されました
- マーチャント名は送信された名前と一致します
どこにも矛盾はありません。インストールされている GPay アプリは最新バージョンです。エラーがどこにあるのかについてのヒントは大歓迎です。