Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
63 lines
3 KiB
JavaScript
Executable file
63 lines
3 KiB
JavaScript
Executable file
/* -*- Mode: js2; js2-basic-offset: 2; indent-tabs-mode: nil -*- */
|
|
/* vim: set ft=javascript sw=2 ts=2 autoindent cindent expandtab: */
|
|
|
|
'use strict';
|
|
|
|
/**
|
|
Mock payment provider JWT
|
|
|
|
{ "iss": "323d34dc-b5cf-4822-8e47-6a4515dc74db",
|
|
"request": {
|
|
"description": "The forbidden fruit",
|
|
"id": "af1f960a-3f90-4e2d-a20f-d5170aee49f2",
|
|
"postbackURL": "https://inapp-pay-test.paas.allizom.org/mozpay/postback",
|
|
"productData": "localTransID=6fc8f207-da3f-440f-9977-eb613aae0a00",
|
|
"chargebackURL": "https://inapp-pay-test.paas.allizom.org/mozpay/chargeback",
|
|
"name": "Virtual Kiwi"
|
|
},
|
|
"typ": "tests/payments/pay/v1",
|
|
"aud": "ferjm.github.io/gaia-mock-payment-provider"
|
|
}
|
|
|
|
*/
|
|
const mockJWT = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIzMjNkMzRkYy1iNWNmLTQ4MjItOGU0Ny02YTQ1MTVkYzc0ZGIiLCJhdWQiOiJmZXJqbS5naXRodWIuaW8vZ2FpYS1tb2NrLXBheW1lbnQtcHJvdmlkZXIiLCJ0eXAiOiJ0ZXN0cy9wYXltZW50cy9wYXkvdjEiLCJyZXF1ZXN0Ijp7ImlkIjoiYWYxZjk2MGEtM2Y5MC00ZTJkLWEyMGYtZDUxNzBhZWU0OWYyIiwibmFtZSI6IlZpcnR1YWwgS2l3aSIsImRlc2NyaXB0aW9uIjoiVGhlIGZvcmJpZGRlbiBmcnVpdCIsInByb2R1Y3REYXRhIjoibG9jYWxUcmFuc0lEPTZmYzhmMjA3LWRhM2YtNDQwZi05OTc3LWViNjEzYWFlMGEwMCIsInBvc3RiYWNrVVJMIjoiaHR0cHM6Ly9pbmFwcC1wYXktdGVzdC5wYWFzLmFsbGl6b20ub3JnL21venBheS9wb3N0YmFjayIsImNoYXJnZWJhY2tVUkwiOiJodHRwczovL2luYXBwLXBheS10ZXN0LnBhYXMuYWxsaXpvbS5vcmcvbW96cGF5L2NoYXJnZWJhY2sifX0.DlHejmKRlVPLYO-HVAYDzqOcv5eXMsVlpnozcADpnh4';
|
|
|
|
// Invalid typ JWT
|
|
const invalidJWT = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.IntcImF1ZFwiOiBcImNvbm5lY3QucWEtb3BlbnRlbC0wNC5oaS5pbmV0XCIsIFwiaXNzXCI6IFwiMzRYVjM3QkRSQkJGNEtaQ1M5UVVcIiwgXCJyZXF1ZXN0XCI6IHtcIm5hbWVcIjogXCJQaWNlIG9mIENha2VcIiwgXCJwcmljZVwiOiAxMC41LCBcInByaWNlVGllclwiOiAxLCBcInByb2R1Y3RkYXRhXCI6IFwidHJhbnNhY3Rpb25faWQ9MTJcIiwgXCJjdXJyZW5jeUNvZGVcIjogXCJVU0RcIiwgXCJkZXNjcmlwdGlvblwiOiBcIlZpcnR1YWwgY2hvY29sYXRlIGNha2UgdG8gZmlsbCB5b3VyIHZpcnR1YWwgdHVtbXlcIn0sIFwiZXhwXCI6IDEzNDIwMDMwNzA1MTMsIFwiaWF0XCI6IDEzNDIwMDMwNzQxMTMsIFwidHlwXCI6IFwicGF5bWVudHMvaW5hcHAvdjFcIn0i.I5rFwoBtgyTltMJ_11rHOgcto-HdFbYlIOgVOVSlJe0';
|
|
|
|
var PayTests = {
|
|
|
|
init: function pt_init() {
|
|
window.addEventListener('DOMContentLoaded', function() {
|
|
var jwts = {
|
|
'test-pmpp': [mockJWT],
|
|
'test-invalid': [invalidJWT],
|
|
'test-nojwt': undefined,
|
|
'test-repeated': [mockJWT, mockJWT]
|
|
};
|
|
|
|
['test-pmpp',
|
|
'test-invalid',
|
|
'test-nojwt',
|
|
'test-repeated'].forEach(function(id) {
|
|
document.getElementById(id).addEventListener('click', function() {
|
|
PayTests.pay(jwts[id]);
|
|
});
|
|
});
|
|
});
|
|
},
|
|
|
|
pay: function pt_pay(JWTs) {
|
|
var request = navigator.mozPay(JWTs);
|
|
request.onsuccess = function onsuccess() {
|
|
document.getElementById('result').innerHTML = 'Payment success';
|
|
};
|
|
request.onerror = function onerror() {
|
|
console.log("Error " + request.error.name);
|
|
document.getElementById('result').innerHTML = 'Payment error ' +
|
|
request.error.name;
|
|
};
|
|
}
|
|
};
|
|
|
|
PayTests.init();
|