PaymentRequest: show() ã¡ã½ãã
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
å®å ¨ãªã³ã³ããã¹ãç¨: ãã®æ©è½ã¯ä¸é¨ã¾ãã¯ãã¹ã¦ã®å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã«ããã¦ãå®å ¨ãªã³ã³ããã¹ã (HTTPS) ã§ã®ã¿å©ç¨ã§ãã¾ãã
PaymentRequest ã¤ã³ã¿ã¼ãã§ã¤ã¹ã® show() ã¡ã½ããã¯ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã«å¯¾ãã¦ã決æ¸ãªã¯ã¨ã¹ãã®ããã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ãã¦ã¼ã¶ã¼ã«ç¤ºããå¦çããå¦çãå§ããããã«æç¤ºãã¾ãã
ãã¹ã¦ã®ææ¸ã«ããã¦ãä¸åº¦ã«å¦çãããã¨ãã§ããæ±ºæ¸ãªã¯ã¨ã¹ã㯠1 ã¤ã ãã§ããä¸åº¦ PaymentRequest ã® show() ã¡ã½ãããå¼ã³åºãããã¨ãä»ã® show() ã®å¼ã³åºãã«å¯¾ãã¦ã¯ãè¿ããããã¹ã決æ¸ãªã¯ã¨ã¹ãã®çµæã示ã PaymentResponse ã§å±¥è¡ãããããã¨ã©ã¼ã§æå¦ãããã¾ã§ AbortError ã«ãã£ã¦æå¦ãããããã«ãªãã¾ãã
ã¡ã¢: ç¾å®ã«ã¯ãè©³ç´°ä»æ§ã§ã¯ã§ããªããã¨ã«ãªã£ã¦ããã«ãããããããFirefox ãå«ãããã¤ãã®ãã©ã¦ã¶ã¼ã§ã¯ãä¸åº¦ã«è¤æ°ã®ã¢ã¯ãã£ããªæ±ºæ¸ãªã¯ã¨ã¹ãã«å¯¾å¿ãã¦ãã¾ãã
ã¢ã¼ããã¯ãã£ã show() ãå¼ã³åºãã¦æ±ºæ¸ã¤ã³ã¿ã¼ãã§ã¤ã¹ãã¤ã³ã¹ã¿ã³ã¹åããæç¹ã§ãå¿
ããããã¹ã¦ã®ãã¼ã¿ãæºåã§ãã¦ããã¨ã¯éããªãå ´åãdetailsPromise 弿°ãæå®ãã¦ããã¼ã¿ãæºåã§ããæç¹ã§å±¥è¡ããã Promise ãæä¾ãã¾ãããããæå®ãããå ´åãshow()ã¯ãããã¹ãå±¥è¡ãããã¾ã§ã¦ã¼ã¶ã¼ã決æ¸ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨å¯¾è©±ãããã¨ã許å¯ããªãã®ã§ãã¦ã¼ã¶ã¼ã決æ¸ããã»ã¹ã«é¢ä¸ããåã«ãã¼ã¿ãæ´æ°ãããã¨ãã§ãã¾ãã
çµæãå¦çããå¿
è¦ã«å¿ã㦠PaymentResponse.retry() ãå¼ã³åºãã¦å¤±æããæ¯æããå試è¡ãããã¨ã¯ããã¼ãºã«å¿ãã¦ããã¹ã¦éåæã¾ãã¯åæã§è¡ããã¨ãã§ãã¾ããè¯ã使ãåæãå¾ãããã«ã¯ãé常ãéåæã®ã½ãªã¥ã¼ã·ã§ã³ãæé©ã§ããMDNãä»ã®å ´æã«ããã»ã¨ãã©ã®ä¾ã§ã¯ãasync/await ã使ç¨ãã¦çµæãæ¤è¨¼ããã¦ããéãªã©éåæã«å¾
æ©ãã¾ãã
æ§æ
show()
show(details)
弿°
detailsçç¥å¯-
ãªãã¸ã§ã¯ãã¾ãã¯ãªãã¸ã§ã¯ãã«è§£æ±ºãããããã¹ (
Promise) ã®ã©ã¡ããã§ããã¢ã¼ããã¯ãã£ã«ãããæ±ºæ¸ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¤ã³ã¹ã¿ã³ã¹åã¨ã¦ã¼ã¶ã¼ã«ããæä½éå§ã®éã«æ±ºæ¸ãªã¯ã¨ã¹ãã®è©³ç´°ãæ´æ°ããå¿ è¦ãããå ´åã¯ããããæå®ãã¦ãã ããããªãã¸ã§ã¯ãã«ã¯æ´æ°ãããæ å ±ãå«ããå¿ è¦ãããã¾ããdisplayItemsçç¥å¯-
ãªãã¸ã§ã¯ãã®é åã§ããããããæ±ºæ¸ãªã¯ã¨ã¹ãã® 1 ã¤ã®è¡ãè¨è¿°ãã¦ãã¾ãããããã¯é 忏ãè«æ±æ¸ã®è¡ã表ãããããã以ä¸ã®ããããã£ãæã¡ã¾ãã
amount-
ã¢ã¤ãã ã®ééç価å¤ãè¨è¿°ãã¦ãããªãã¸ã§ã¯ãã§ãããã®ãªãã¸ã§ã¯ãã«ã¯ã以ä¸ã®ãã£ã¼ã«ããè¨è¼ããã¾ãã
currency-
æååã§ã決æ¸ã®
valueã«ä½¿ç¨ããé貨ã示ãæå¹ãª 3 æåã® ISO 4217 é貨èå¥åï¼ISO 4217ï¼ãå ¥ãã¾ãã value-
æååã§ã決æ¸é¡ãæ§æããé貨ã®éé¡ã表ãæå¹ãª 10 鲿°å¤ãæ ¼ç´ãããã®ã§ãããã®æååã¯ãè² ã®å¤ã示ããªãã·ã§ã³ã®å é ã® "-" ã¨ã0 ãã 9 ã¾ã§ã® 1 æ¡ä»¥ä¸ã®æ°åãããã¦ãªãã·ã§ã³ã®å°æ°ç¹ï¼"."ããã±ã¼ã«ã«é¢ä¿ãªãï¼ã¨ãå°ãªãã¨ã 1 æ¡ä»¥ä¸ã®æ°åãç¶ããã®ã ããæ ¼ç´ããªããã°ãªãã¾ããã空ç½ã¯è¨±ããã¾ããã
label-
課éãããã¢ã¤ãã ããµã¼ãã¹ã®ã人éãèªã¿åãå¯è½ãªåç§°ã説æãæå®ããæååãã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ãã¶ã¤ã³ã«ãã£ã¦ã¯ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã«ãã£ã¦ã¦ã¼ã¶ã¼ã«è¡¨ç¤ºããããã¨ãããã¾ãã
pending-
æå®ãã
amountãã¾ã 確å®ãã¦ããªãå ´åã«trueã¨ãªãè«çå¤ãæå®ãã¾ããããã¯ãé éå 使ãé éãªãã·ã§ã³ãªã©ã®é¸æã«ä¾åããéæãç¨éã®éé¡ãªã©ã®é ç®ã示ãããã«ä½¿ç¨ãããã¨ãã§ãã¾ããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯ãã®æ å ±ã示ããã¨ãã§ãã¾ãããããããå¿ è¦ã¯ããã¾ããã
errorçç¥å¯-
æååã§ãã¦ã¼ã¶ã¼ã«è¡¨ç¤ºããã¨ã©ã¼ã¡ãã»ã¼ã¸ãæå®ãã¾ãã
updateWith()ãå¼ã³åºãã¨ããæ´æ°ãã¼ã¿ã«errorãè¨è¼ããã¨ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã«ä¸è¬çãªã¨ã©ã¼ã¡ãã»ã¼ã¸ã¨ãã¦ããã¹ãã表示ããããã«ãã¾ããã¢ãã¬ã¹ãã£ã¼ã«ãåºæã®ã¨ã©ã¼ã«ã¤ãã¦ã¯ãshippingAddressErrorsãã£ã¼ã«ãã使ç¨ãã¦ãã ããã modifiersçç¥å¯-
ãªãã¸ã§ã¯ãã®é åã§ããããããå ·ä½çãªæ±ºæ¸ææ®µèå¥åç¨ã®ä¿®é£¾åã表ãã¦ãããããããã«ä»¥ä¸ã®ããããã£ãããã¾ãã
supportedMethods-
æ±ºæ¸ææ®µèå¥åã表ãæååã§ããæ±ºæ¸ææ®µã®èå¥åã¯ãã¦ã¼ã¶ã¼ããã®æ±ºæ¸ææ®µã鏿ããå ´åã®ã¿é©ç¨ããã¾ãã
totalçç¥å¯-
ã¦ã¼ã¶ã¼ããã®æ±ºæ¸ææ®µã鏿ããå ´åã«ã
detailsPromiseãã©ã¡ã¼ã¿ã¼ã®totalããããã£ã䏿¸ããããªãã¸ã§ã¯ãããã®ããããã£ã¯ãdetailsPromiseãã©ã¡ã¼ã¿ã¼ã®totalããããã£ã¨åãå ¥åå¤ãåãã¾ãã additionalDisplayItemsçç¥å¯-
ãªãã¸ã§ã¯ãã®é å (
Array) ã¯ãã¦ã¼ã¶ã¼ããã®æ±ºæ¸ææ®µã鏿ããå ´åã«ãdetailsPromiseãã©ã¡ã¼ã¿ã¼ã®displayItemsããããã£ã«è¿½å ããã表示é ç®ãæå®ãã¾ãã ãã®ããããã£ã¯ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã表示ãã鏿ãããæ±ºæ¸ææ®µã®åè¨éé¡ãç°ãªãçç±ã示ãå²å¼ã¾ãã¯è¿½å æéã®è¡é ç®ã追å ããããã«ä¸è¬çã«ä½¿ç¨ããã¾ãã ãã®ããããã£ã¯ãdetailsPromiseãã©ã¡ã¼ã¿ã¼ã®displayItemsããããã£ã¨åãå ¥åãåãåãã¾ãã dataçç¥å¯-
対å¿ãã¦ããæ±ºæ¸ææ®µã§å¿ è¦ã¨ãªãå¯è½æ§ããããªãã·ã§ã³æ å ±ãæä¾ãããã·ãªã¢ã©ã¤ãºå¯è½ãªãªãã¸ã§ã¯ãã
ä¾ãã°ã鏿ããæ±ºæ¸ææ®µã«åºã¥ãæ¯æåè¨é¡ã調æ´ããããã«ãããã使ç¨ãããã¨ãã§ãã¾ãï¼ã5% ã®ç¾éå²å¼!ãï¼ã
shippingAddressErrorsçç¥å¯-
é éå 使ã®åããããã£ã§æ¤è¨¼ã§ããªãã£ãã¨ã©ã¼ã¡ãã»ã¼ã¸ãå«ãããã¨ãã§ãããªãã¸ã§ã¯ãã
shippingOptionsçç¥å¯-
ãªãã¸ã§ã¯ãã®é åãããããã®ãªãã¸ã§ã¯ãã¯ãã¦ã¼ã¶ã¼ãé¸ã¶ãã¨ãã§ããå©ç¨ã§ããé éãªãã·ã§ã³ã® 1 ã¤ãè¨è¿°ãã¾ãã
totalçç¥å¯-
displayItemsã®ãªãã¸ã§ã¯ãã¨åãããããã£ãæã¤ãªãã¸ã§ã¯ãã§ã決æ¸ã®ããã®æ´æ°ãããåè¨ãæä¾ãã¾ãããããdisplayItemsã®ãã¹ã¦ã®ã¢ã¤ãã ã®åè¨ã¨çãããã¨ã確èªãã¦ãã ãããããã¯èªåçã«è¨ç®ããããã®ã§ã¯ããã¾ãããæ±ºæ¸ã®åè¨éé¡ãå¤ãããã³ã«ããã®å¤ãèªåã§æ´æ°ããå¿ è¦ãããã¾ããããã«ãããç¨éãå²å¼ããã®ä»ã®è«æ±éé¡ã®åè¨ã調æ´ãããããªãã¨ãå¦çããããã®æè»æ§ãæã¤ãã¨ãã§ãã¾ãã
è¿å¤
æçµçã« PaymentResponse ã§è§£æ±ºããã Promise ã§ãã
ãããã¹ã¯ãã¦ã¼ã¶ã¼ã決æ¸ãªã¯ã¨ã¹ããåãå
¥ããã¨è§£æ±ºãã¾ãï¼ãã©ã¦ã¶ã¼ã®æ±ºæ¸ã·ã¼ãã®ãPayããã¿ã³ãã¯ãªãã¯ãããªã©ï¼ã
ä¾å¤
ä¾å¤ã¯çºçãããPromise ãæå¦ãããã¨ãã«è¿ããã¾ãã
AbortErrorDOMException-
ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ã ãæ¢ã«æ±ºæ¸ããã«ã表示ãã¦ããå ´åã«è¿ããã¾ããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããèªã¿è¾¼ãã ãã¹ã¦ã®ææ¸ã«ããã¦ãä¸åº¦ã«è¡¨ç¤ºã§ããæ±ºæ¸ããã«ã¯ 1 ã¤ã ãã§ãã
ã¦ã¼ã¶ã¼ã決æ¸ãªã¯ã¨ã¹ãããã£ã³ã»ã«ããå ´åããããã¹ã¯
AbortErrorã§æå¦ããã¾ãã InvalidStateErrorDOMException-
ãã®ãªã¯ã¨ã¹ãã«å¯¾ãã¦åãæ±ºæ¸ãæ¢ã«ç¤ºããã¦ããå ´åï¼æ¢ã«ç¤ºããã¦ããããããã®ç¶æ ã¯
interactiveï¼ã«è¿ããã¾ãã NotSupportedErrorDOMException-
PaymentRequestã³ã³ã¹ãã©ã¯ã¿ã¼ãå¼ã³åºãããã¨ãã«æå®ããæ±ºæ¸ææ®µã«ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã対å¿ãã¦ããªãå ´åã«è¿ãã¾ãã SecurityErrorDOMException-
show()ã®å¼ã³åºãããclickã¾ãã¯keyupã¤ãã³ããªã©ã®ã¦ã¼ã¶ã¼æä½ã«å¿çãã¦ããªãå ´åã«ããã®å¤ãè¿ããã¾ããä»ã«ãSecurityErrorãçºçããçç±ã¯ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã®å¤æã«ãããã®ã§ãçæéã«å¤ãã®show()ãå¼ã³åºãããããã¢ã¬ã³ã¿ã«ã³ã³ããã¼ã«ã«ãã£ã¦æ±ºæ¸ãªã¯ã¨ã¹ãããããã¯ããã¦ããã¨ãã«show()ãå¼ã³åºããããããããªç¶æ³ãå«ããã¨ãããã¾ãã
ã»ãã¥ãªãã£
åçºã®ã¦ã¼ã¶ã¼æ´»æ§åãå¿ è¦ã§ããåä½ããããã«ã¯ãã¦ã¼ã¶ã¼ããã¼ã¸ã UI è¦ç´ ã¨å¯¾è©±ããå¿ è¦ãããã¾ãã
使ç¨ä¸ã®æ³¨æ
show() ã使ç¨ãããããããã¿ã¼ã³ã¯ãasync/await æ§æã使ç¨ããããã¬ã¹ãã³ã¹ã¨æå¦ã®å¯è½æ§ãå¦çããããã« show().then().catch() ã使ç¨ãã¦ãããã®ããããã§ãããããã¯æ¬¡ã®ããã«ããã¾ãã
async/await æ§æ
ãããã¹ã®è§£æ±ºãå¾
ã¤ããã« await ã使ç¨ããã¨ã決æ¸ãå¦çããã³ã¼ããç¹ã«ãããã«æ¸ããã¨ãã§ããã
async function processPayment() {
try {
const payRequest = new PaymentRequest(methodData, details, options);
payRequest.onshippingaddresschange = (ev) =>
ev.updateWith(checkAddress(payRequest));
payRequest.onshippingoptionchange = (ev) =>
ev.updateWith(checkShipping(payRequest));
const response = await payRequest.show();
await validateResponse(response);
} catch (err) {
/* handle the error; AbortError usually means a user cancellation */
}
}
ãã®ã³ã¼ãã§ã¯ãcheckAddress() ã¡ã½ãã㨠checkShipping() ã¡ã½ããããããããé
éå
使ã¨é
éãªãã·ã§ã³ã®å¤æ´ã調ã¹ããªãã¸ã§ã¯ãããããè¿ããããã¹ãã¬ã¹ãã³ã¹ã¨ãã¦ä¸ãã¾ãããã®ãªãã¸ã§ã¯ãã«ã¯ãPaymentResponse å
ã®å¤æ´ããã¾ãã¯å¤æ´ããå¿
è¦ããããã£ã¼ã«ããæ ¼ç´ãã¾ãã
ä¸è¨ã® validateResponse() ã¡ã½ããã¯ãshow() ãè¿ãããã¨å¼ã³åºãããè¿ããã response ãè¦ã¦ãæ¯æããéä¿¡ãããã失æã¨ãã¦æ¯æããæå¦ããããæ±ºå®ããããã«ä½¿ç¨ããã¾ãã
async function validateResponse(response) {
try {
if (await checkAllValues(response)) {
await response.complete("success");
} else {
await response.complete("fail");
}
} catch (err) {
await response.complete("fail");
}
}
ããã§ã¯ãcheckAllValues() ã¨ããç¬èªã®é¢æ°ã response ã®åå¤ã調ã¹ã¦ãããããæå¹ã§ãããã¨ã確å®ã«ä¿æãããã¹ã¦ã®ãã£ã¼ã«ããæå¹ã§ããã° trueãæå¹ã§ãªããã®ãããã° false ãè¿ãã¾ãããã¹ã¦ã®ãã£ã¼ã«ããæå¹ãªå ´åã®ã¿ãcomplete() ã¡ã½ãããæåå "success" ãä¼´ã£ã¦ã¬ã¹ãã³ã¹ã«å¼ã³åºããããã¹ã¦ãæå¹ã§ãããã¨ã示ããããã«å¿ãã¦æ±ºæ¸ãå®äºã§ããããã«ãã¾ãã
許容ã§ããªãå¤ããããã£ã¼ã«ããããå ´åãã¾ãã¯ååã®ã³ã¼ãã§ä¾å¤ãçºçããå ´åã¯ãcomplete()ãæåå "fail" ã§å¼ã³åºãããæ±ºæ¸å¦çãå®äºãã失æãããã¨ã示ãã¾ãã
ããã«å¤±æãã代ããã«ãã¬ã¹ãã³ã¹ãªãã¸ã§ã¯ãã« retry() ãå¼ã³åºãã¦ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã«æ±ºæ¸å¦çã®ããç´ããä¾é ¼ãããã¨ãã§ãã¾ããããã¯é常ãã¦ã¼ã¶ã¼ã注æã«å¿
è¦ãªä¿®æ£ãè¡ã£ãå¾ã«ã®ã¿è¡ãããã¹ãã§ãã
決æ¸å¦çãå§ããã«ã¯ãçµå±ã®ã¨ãã processPayment() ã¡ã½ãããå¼ã³åºãã ãã§ããã®ã§ãã
then/catch æ§æ
ã¾ããæ§æ¥ã®ãããã¹ãã¼ã¹ã®ææ³ã§æ±ºæ¸ã使¥ãããã¨ãã§ããshow()ãè¿ããããã¹ã«å¯¾ã㦠then() 㨠catch() 颿°ã使ç¨ãã¾ãã
function processPayment() {
const payRequest = new PaymentRequest(methodData, details, options);
payRequest.onshippingaddresschange = (ev) =>
ev.updateWith(checkAddress(payRequest));
payRequest.onshippingoptionchange = (ev) =>
ev.updateWith(checkShipping(payRequest));
payRequest
.show()
.then((response) => validateResponse(response))
.catch((err) => handleError(err));
}
ããã¯ãawait æ§æã使ç¨ãã processPayment() ã¡ã½ããã¨æ©è½çã«åçã§ãã
function validateResponse(response) {
checkAllValues(response)
.then((response) => response.complete("success"))
.catch((response) => response.complete("fail"));
}
checkAllValues() ãåæé¢æ°ã¨ãããã¨ãã§ãã¾ããããã®å ´åãããã©ã¼ãã³ã¹ä¸ãé¿ãããå½±é¿ãããããããã¾ããã
function validateResponse(response) {
if (checkAllValues(response)) {
response.complete("success");
} else {
response.complete("fail");
}
}
ãããã¹ã®åä½ã«ã¤ãã¦ãã詳ããæ å ±ãå¿ è¦ãªå ´åã¯ããããã¹ã®ä½¿ç¨ã®è¨äºãåç §ãã¦ãã ããã
ä¾
次ã®ä¾ã§ã¯ãshow() ã¡ã½ãããå¼ã³åºãããåã« PaymentRequest ãªãã¸ã§ã¯ããã¤ã³ã¹ã¿ã³ã¹åããã¦ãã¾ãããã®ã¡ã½ããã¯ãã¦ã¼ã¶ã¼ããæ±ºæ¸æ
å ±ãåå¾ããããã®ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã®çµã¿è¾¼ã¿å¦çãçºçããã¾ããshow() ã¡ã½ããã¯ãã¦ã¼ã¶ã¼ã¨ã®å¯¾è©±ãå®äºãã㨠Promise ãè¿ã㦠PaymentResponse ãªãã¸ã§ã¯ãã«è§£æ±ºããããã®å¾ãéçºè
㯠PaymentResponse ãªãã¸ã§ã¯ãã®æ
å ±ã使ç¨ãã¦ã決æ¸ãã¼ã¿ãå½¢å¼åãã¦ãµã¼ãã¼ã«éä¿¡ãã¾ããæ±ºæ¸æ
å ±ãéåæã«ãµã¼ãã¼ã«éä¿¡ãã¦ãpaymentResponse.complete() ã®æå¾ã®å¼ã³åºãã§æ±ºæ¸ã®æåã»å¤±æã示ããã¨ãã§ããããã«ããå¿
è¦ãããã¾ãã
button.onclick = async function handlePurchase() {
// Initialization of PaymentRequest arguments are excerpted for the sake of
// brevity.
const payment = new PaymentRequest(methods, details, options);
try {
const response = await payment.show();
// Process response here, including sending payment instrument
// (e.g., credit card) information to the server.
// paymentResponse.methodName contains the selected payment method
// paymentResponse.details contains a payment method specific response
await response.complete("success");
} catch (err) {
console.error("Uh oh, something bad happened", err.message);
}
};
次ã®ä¾ã¯ãã¨ã³ãã¦ã¼ã¶ã¼ã説æãã¦ããã¨ãã«æ±ºæ¸ã·ã¼ããæ´æ°ããæ¹æ³ã示ãã¦ãã¾ãã
async function requestPayment() {
// We start with AU$0 as the total.
const initialDetails = {
total: {
label: "Total",
amount: { value: "0", currency: "AUD" },
},
};
const request = new PaymentRequest(methods, initialDetails, options);
// Check if the user supports the `methods`
if (!(await request.canMakePayment())) {
return; // no, so use a web form instead.
}
// Let's update the total as the sheet is shown
const updatedDetails = {
total: {
label: "Total",
amount: { value: "20", currency: "AUD" },
},
};
const response = await request.show(updatedDetails);
// Check response, etc.
}
document.getElementById("buyButton").onclick = requestPayment;
仿§æ¸
| 仿§æ¸ |
|---|
| Payment Request API > # dom-paymentrequest-show > |