{"id":323167,"date":"2026-06-13T02:19:18","date_gmt":"2026-06-13T02:19:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tingee-gateway-for-woocommerce\/"},"modified":"2026-06-15T01:01:59","modified_gmt":"2026-06-15T01:01:59","slug":"heno-tingee-gateway-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/heno-tingee-gateway-for-woocommerce\/","author":23511082,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"HENO Tingee Gateway for WooCommerce","header_author":"HENO","header_description":"T\u00edch h\u1ee3p c\u1ed5ng thanh to\u00e1n Tingee (by HENO) v\u00e0o WooCommerce. H\u1ed7 tr\u1ee3 QR \u0111\u1ed9ng, chuy\u1ec3n kho\u1ea3n ng\u00e2n h\u00e0ng t\u1ef1 \u0111\u1ed9ng v\u00e0 Webhook IPN.","assets_banners_color":"d42630","last_updated":"2026-06-15 01:01:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/developers.tingee.vn","header_author_uri":"https:\/\/heno.vn","rating":0,"author_block_rating":0,"active_installs":0,"downloads":164,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"cuongnguyenba","date":"2026-06-15 01:01:59"}},"upgrade_notice":{"1.0.0":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3572066,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3575472,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3572066,"resolution":"1","location":"assets","locale":"","width":3406,"height":1810},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3572066,"resolution":"2","location":"assets","locale":"","width":3418,"height":1808},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3572066,"resolution":"3","location":"assets","locale":"","width":3410,"height":1900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3572066,"resolution":"4","location":"assets","locale":"","width":3416,"height":1808},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3572066,"resolution":"5","location":"assets","locale":"","width":3392,"height":1814},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3572066,"resolution":"6","location":"assets","locale":"","width":3416,"height":1816},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3572066,"resolution":"7","location":"assets","locale":"","width":3394,"height":1818}},"screenshots":{"1":"<strong>Payment method at checkout<\/strong> \u2014 Tingee option appears with title and description.","2":"<strong>QR code on thank-you page<\/strong> \u2014 shows QR image, account number, amount, and transfer reference with copy buttons.","3":"<strong>Plugin settings page<\/strong> \u2014 Client ID, Secret Token, environment, VA account number, integration mode, and connection test button.","4":"<strong>Webhook URL field<\/strong> \u2014 read-only URL to copy into your Tingee developer dashboard.","5":"<strong>Order confirmed<\/strong> \u2014 thank-you page automatically updates to \"Payment successful\" after Webhook IPN is received."}},"plugin_section":[],"plugin_tags":[127760,507,1373,200631,286],"plugin_category":[45],"plugin_contributors":[266905,266904],"plugin_business_model":[],"class_list":["post-323167","plugin","type-plugin","status-publish","hentry","plugin_tags-bank-transfer","plugin_tags-payment","plugin_tags-qr-code","plugin_tags-vietqr","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-cuongnguyenba","plugin_contributors-heno","plugin_committers-cuongnguyenba"],"banners":{"banner":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/banner-772x250.png?rev=3575472","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/icon-256x256.png?rev=3572066","icon_2x":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/icon-256x256.png?rev=3572066","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-1.png?rev=3572066","caption":"<strong>Payment method at checkout<\/strong> \u2014 Tingee option appears with title and description."},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-2.png?rev=3572066","caption":"<strong>QR code on thank-you page<\/strong> \u2014 shows QR image, account number, amount, and transfer reference with copy buttons."},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-3.png?rev=3572066","caption":"<strong>Plugin settings page<\/strong> \u2014 Client ID, Secret Token, environment, VA account number, integration mode, and connection test button."},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-4.png?rev=3572066","caption":"<strong>Webhook URL field<\/strong> \u2014 read-only URL to copy into your Tingee developer dashboard."},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-5.png?rev=3572066","caption":"<strong>Order confirmed<\/strong> \u2014 thank-you page automatically updates to \"Payment successful\" after Webhook IPN is received."},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-6.png?rev=3572066","caption":""},{"src":"https:\/\/ps.w.org\/heno-tingee-gateway-for-woocommerce\/assets\/screenshot-7.png?rev=3572066","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>HENO Tingee Gateway for WooCommerce<\/strong> k\u1ebft n\u1ed1i c\u1eeda h\u00e0ng WooCommerce c\u1ee7a b\u1ea1n v\u1edbi h\u1ea1 t\u1ea7ng thanh to\u00e1n <a href=\"https:\/\/tingee.vn\">Tingee<\/a> c\u1ee7a HENO, cho ph\u00e9p kh\u00e1ch h\u00e0ng thanh to\u00e1n qua chuy\u1ec3n kho\u1ea3n ng\u00e2n h\u00e0ng (VietQR) v\u1edbi <strong>x\u00e1c nh\u1eadn \u0111\u01a1n h\u00e0ng t\u1ef1 \u0111\u1ed9ng<\/strong> \u2014 kh\u00f4ng c\u1ea7n \u0111\u1ed1i so\u00e1t th\u1ee7 c\u00f4ng.<\/p>\n\n<h4>C\u00e1ch ho\u1ea1t \u0111\u1ed9ng<\/h4>\n\n<p><strong>QR + Webhook<\/strong><\/p>\n\n<ol>\n<li>Kh\u00e1ch h\u00e0ng ch\u1ecdn \"Tingee\" khi thanh to\u00e1n.<\/li>\n<li>Plugin t\u1ea1o m\u00e3 QR li\u00ean k\u1ebft v\u1edbi \u0111\u01a1n h\u00e0ng.<\/li>\n<li>Trang c\u1ea3m \u01a1n hi\u1ec3n th\u1ecb m\u00e3 QR, s\u1ed1 t\u00e0i kho\u1ea3n, s\u1ed1 ti\u1ec1n v\u00e0 n\u1ed9i dung chuy\u1ec3n kho\u1ea3n.<\/li>\n<li>Kh\u00e1ch h\u00e0ng qu\u00e9t v\u00e0 chuy\u1ec3n kho\u1ea3n \u2192 Tingee g\u1eedi Webhook (IPN) v\u1ec1 site c\u1ee7a b\u1ea1n.<\/li>\n<li>Plugin x\u00e1c th\u1ef1c ch\u1eef k\u00fd, kh\u1edbp giao d\u1ecbch v\u00e0 t\u1ef1 \u0111\u1ed9ng \u0111\u00e1nh d\u1ea5u \u0111\u01a1n h\u00e0ng l\u00e0 \u0111\u00e3 thanh to\u00e1n \u2014 <strong>trong v\u00f2ng 5\u201315 gi\u00e2y<\/strong>.<\/li>\n<\/ol>\n\n<h4>T\u00ednh n\u0103ng n\u1ed5i b\u1eadt<\/h4>\n\n<ul>\n<li><strong>X\u00e1c nh\u1eadn \u0111\u01a1n h\u00e0ng t\u1ef1 \u0111\u1ed9ng<\/strong> qua Webhook IPN \u2014 kh\u00f4ng c\u1ea7n ki\u1ec3m tra th\u1ee7 c\u00f4ng.<\/li>\n<li><strong>Hi\u1ec3n th\u1ecb VietQR<\/strong> tr\u00ean trang c\u1ea3m \u01a1n v\u1edbi n\u00fat sao ch\u00e9p nhanh s\u1ed1 t\u00e0i kho\u1ea3n, s\u1ed1 ti\u1ec1n v\u00e0 n\u1ed9i dung chuy\u1ec3n kho\u1ea3n.<\/li>\n<li><strong>X\u00e1c th\u1ef1c ch\u1eef k\u00fd HMAC-SHA512<\/strong> cho m\u1ecdi webhook \u2014 c\u00e1c y\u00eau c\u1ea7u gi\u1ea3 m\u1ea1o b\u1ecb t\u1eeb ch\u1ed1i v\u1edbi m\u00e3 401.<\/li>\n<li><strong>B\u1ea3o v\u1ec7 idempotency<\/strong> \u2014 webhook b\u1ecb g\u1eedi l\u1ea1i (t\u1ed1i \u0111a 5 l\u1ea7n) kh\u00f4ng bao gi\u1edd ghi n\u1ee3 \u0111\u01a1n h\u00e0ng hai l\u1ea7n.<\/li>\n<li><strong>T\u01b0\u01a1ng th\u00edch Checkout Blocks<\/strong> \u2014 ho\u1ea1t \u0111\u1ed9ng v\u1edbi c\u1ea3 shortcode c\u0169 v\u00e0 WooCommerce Checkout Blocks m\u1edbi.<\/li>\n<li><strong>T\u01b0\u01a1ng th\u00edch HPOS<\/strong> \u2014 h\u1ed7 tr\u1ee3 WooCommerce High-Performance Order Storage.<\/li>\n<li><strong>T\u00edch h\u1ee3p WC Logger<\/strong> \u2014 ho\u1ea1t \u0111\u1ed9ng webhook \u0111\u01b0\u1ee3c ghi log t\u1ea1i WooCommerce &gt; Tr\u1ea1ng th\u00e1i &gt; Logs (<code>tingee-webhook<\/code>), th\u00f4ng tin b\u00ed m\u1eadt \u0111\u01b0\u1ee3c \u1ea9n \u0111i.<\/li>\n<li><strong>N\u00fat ki\u1ec3m tra k\u1ebft n\u1ed1i<\/strong> \u2014 x\u00e1c minh Client ID v\u00e0 Secret Token tr\u01b0\u1edbc khi \u0111\u01b0a v\u00e0o ho\u1ea1t \u0111\u1ed9ng th\u1ef1c t\u1ebf.<\/li>\n<li><strong>H\u1ed7 tr\u1ee3 ti\u1ebfng Vi\u1ec7t v\u00e0 ti\u1ebfng Anh<\/strong>.<\/li>\n<\/ul>\n\n<h4>Y\u00eau c\u1ea7u<\/h4>\n\n<ul>\n<li>WordPress 5.6 tr\u1edf l\u00ean<\/li>\n<li>WooCommerce 5.0 tr\u1edf l\u00ean<\/li>\n<li>PHP 7.2 tr\u1edf l\u00ean<\/li>\n<li>T\u00e0i kho\u1ea3n merchant <a href=\"https:\/\/app.tingee.vn\">Tingee<\/a> c\u00f3 Client ID v\u00e0 Secret Token<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>Plugin n\u00e0y k\u1ebft n\u1ed1i v\u1edbi <strong>Tingee<\/strong> payment API (v\u1eadn h\u00e0nh b\u1edfi HENO) \u0111\u1ec3 t\u1ea1o m\u00e3 QR, t\u1ea1o link thanh to\u00e1n v\u00e0 x\u00e1c minh th\u00f4ng b\u00e1o Webhook (IPN) khi thanh to\u00e1n ho\u00e0n t\u1ea5t.<\/p>\n\n<p><strong>D\u1eef li\u1ec7u g\u1eedi \u0111\u1ebfn Tingee:<\/strong><\/p>\n\n<ul>\n<li>S\u1ed1 ti\u1ec1n \u0111\u01a1n h\u00e0ng, ID \u0111\u01a1n h\u00e0ng v\u00e0 n\u1ed9i dung chuy\u1ec3n kho\u1ea3n \u2014 g\u1eedi khi t\u1ea1o QR thanh to\u00e1n ho\u1eb7c URL thanh to\u00e1n.<\/li>\n<li>Plugin kh\u00f4ng chuy\u1ec3n ti\u1ebfp th\u00f4ng tin c\u00e1 nh\u00e2n c\u1ee7a kh\u00e1ch h\u00e0ng (t\u00ean, email, \u0111\u1ecba ch\u1ec9) \u0111\u1ebfn Tingee API.<\/li>\n<\/ul>\n\n<p><strong>Khi n\u00e0o d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c g\u1eedi:<\/strong><\/p>\n\n<ul>\n<li>Khi kh\u00e1ch h\u00e0ng \u0111\u1eb7t h\u00e0ng v\u00e0 nh\u1ea5n \"Thanh to\u00e1n\" \u2014 plugin g\u1ecdi Tingee API \u0111\u1ec3 t\u1ea1o m\u00e3 QR ho\u1eb7c URL thanh to\u00e1n l\u01b0u tr\u1eef.<\/li>\n<li>Khi Tingee g\u1eedi Webhook \u0111\u1ebfn site c\u1ee7a b\u1ea1n (\u0111\u00e2y l\u00e0 d\u1eef li\u1ec7u <em>\u0111\u1ebfn<\/em> t\u1eeb Tingee, kh\u00f4ng ph\u1ea3i \u0111i ra).<\/li>\n<\/ul>\n\n<p><strong>C\u00e1c endpoint Tingee API \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng:<\/strong><\/p>\n\n<ul>\n<li>Production: <code>https:\/\/open-api.tingee.vn<\/code><\/li>\n<\/ul>\n\n<p>Khi s\u1eed d\u1ee5ng plugin n\u00e0y, c\u1eeda h\u00e0ng c\u1ee7a b\u1ea1n k\u1ebft n\u1ed1i v\u1edbi h\u1ea1 t\u1ea7ng c\u1ee7a Tingee. Vui l\u00f2ng \u0111\u1ecdc ch\u00ednh s\u00e1ch c\u1ee7a Tingee tr\u01b0\u1edbc khi \u0111\u01b0a v\u00e0o ho\u1ea1t \u0111\u1ed9ng th\u1ef1c t\u1ebf:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/drive.google.com\/file\/d\/1snw0yOyz6hmanARQDWAX8DEMiG4r6Vmp\/view\">\u0110i\u1ec1u kho\u1ea3n d\u1ecbch v\u1ee5<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/file\/d\/1baa2tZPZvq9HK6w1Tzi2okAjdeo7bJhx\/view\">Ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt<\/a><\/li>\n<\/ul>\n\n<p>T\u00e0i li\u1ec7u d\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n, truy c\u1eadp <a href=\"https:\/\/developers.tingee.vn\">https:\/\/developers.tingee.vn<\/a>.<\/p>\n\n<!--section=installation-->\n<h4>Automatic installation<\/h4>\n\n<ol>\n<li>\u0110\u0103ng nh\u1eadp v\u00e0o trang qu\u1ea3n tr\u1ecb WordPress c\u1ee7a b\u1ea1n.<\/li>\n<li>V\u00e0o <strong>Plugins &gt; Th\u00eam m\u1edbi<\/strong>.<\/li>\n<li>T\u00ecm ki\u1ebfm <strong>HENO Tingee Gateway for WooCommerce<\/strong>.<\/li>\n<li>Nh\u1ea5n <strong>C\u00e0i \u0111\u1eb7t ngay<\/strong>, sau \u0111\u00f3 <strong>K\u00edch ho\u1ea1t<\/strong>.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>T\u1ea3i file zip c\u1ee7a plugin.<\/li>\n<li>V\u00e0o <strong>Plugins &gt; Th\u00eam m\u1edbi &gt; T\u1ea3i Plugin l\u00ean<\/strong>.<\/li>\n<li>Ch\u1ecdn file zip v\u00e0 nh\u1ea5n <strong>C\u00e0i \u0111\u1eb7t ngay<\/strong>, sau \u0111\u00f3 <strong>K\u00edch ho\u1ea1t<\/strong>.<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>V\u00e0o <strong>WooCommerce &gt; C\u00e0i \u0111\u1eb7t &gt; Thanh to\u00e1n<\/strong>.<\/li>\n<li>T\u00ecm <strong>Tingee Gateway<\/strong> v\u00e0 nh\u1ea5n <strong>Qu\u1ea3n l\u00fd<\/strong>.<\/li>\n<li>\u0110i\u1ec1n v\u00e0o c\u00e1c tr\u01b0\u1eddng sau:\n\n<ul>\n<li><strong>M\u00f4i tr\u01b0\u1eddng<\/strong> \u2014 ch\u1ecdn Production.<\/li>\n<li><strong>Client ID<\/strong> \u2014 l\u1ea5y t\u1eeb trang qu\u1ea3n l\u00fd developer c\u1ee7a Tingee.<\/li>\n<li><strong>Secret Token<\/strong> \u2014 l\u1ea5y t\u1eeb trang qu\u1ea3n l\u00fd developer c\u1ee7a Tingee.<\/li>\n<\/ul><\/li>\n<li>Nh\u1ea5n <strong>Ki\u1ec3m tra k\u1ebft n\u1ed1i<\/strong> \u0111\u1ec3 x\u00e1c minh th\u00f4ng tin \u0111\u0103ng nh\u1eadp.<\/li>\n<li>Sao ch\u00e9p <strong>URL Webhook<\/strong> hi\u1ec3n th\u1ecb trong trang c\u00e0i \u0111\u1eb7t v\u00e0 d\u00e1n v\u00e0o trang qu\u1ea3n l\u00fd developer Tingee trong ph\u1ea7n c\u1ea5u h\u00ecnh Webhook.<\/li>\n<li>L\u01b0u c\u00e0i \u0111\u1eb7t.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"t%C3%B4i%20l%E1%BA%A5y%20client%20id%20v%C3%A0%20secret%20token%20%E1%BB%9F%20%C4%91%C3%A2u%3F\"><h3>T\u00f4i l\u1ea5y Client ID v\u00e0 Secret Token \u1edf \u0111\u00e2u?<\/h3><\/dt>\n<dd><p>\u0110\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n merchant Tingee t\u1ea1i <a href=\"https:\/\/app.tingee.vn\">app.tingee.vn<\/a>, v\u00e0o m\u1ee5c <strong>Developers<\/strong> v\u00e0 sao ch\u00e9p Client ID c\u00f9ng Secret Token c\u1ee7a b\u1ea1n.<\/p><\/dd>\n<dt id=\"url%20webhook%20l%C3%A0%20g%C3%AC%20v%C3%A0%20t%C3%B4i%20%C4%91i%E1%BB%81n%20v%C3%A0o%20%C4%91%C3%A2u%3F\"><h3>URL Webhook l\u00e0 g\u00ec v\u00e0 t\u00f4i \u0111i\u1ec1n v\u00e0o \u0111\u00e2u?<\/h3><\/dt>\n<dd><p>URL Webhook \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb trong trang c\u00e0i \u0111\u1eb7t plugin (tr\u01b0\u1eddng ch\u1ec9 \u0111\u1ecdc). Sao ch\u00e9p v\u00e0 d\u00e1n v\u00e0o trang qu\u1ea3n l\u00fd developer Tingee trong ph\u1ea7n c\u1ea5u h\u00ecnh Webhook \/ IPN. Tingee s\u1ebd g\u1eedi th\u00f4ng b\u00e1o thanh to\u00e1n \u0111\u1ebfn URL n\u00e0y.<\/p><\/dd>\n<dt id=\"t%C3%B4i%20c%C3%B3%20c%E1%BA%A7n%20ngrok%20ho%E1%BA%B7c%20url%20c%C3%B4ng%20khai%20%C4%91%E1%BB%83%20nh%E1%BA%ADn%20webhook%20kh%C3%B4ng%3F\"><h3>T\u00f4i c\u00f3 c\u1ea7n ngrok ho\u1eb7c URL c\u00f4ng khai \u0111\u1ec3 nh\u1eadn webhook kh\u00f4ng?<\/h3><\/dt>\n<dd><p>C\u00f3, trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n c\u1ee5c b\u1ed9 b\u1ea1n c\u1ea7n c\u00f4ng c\u1ee5 nh\u01b0 <a href=\"https:\/\/ngrok.com\">ngrok<\/a> \u0111\u1ec3 t\u1ea1o URL c\u00f4ng khai m\u00e0 Tingee c\u00f3 th\u1ec3 truy c\u1eadp. Tr\u00ean server th\u1ef1c t\u1ebf v\u1edbi t\u00ean mi\u1ec1n th\u1eadt, kh\u00f4ng c\u1ea7n c\u1ea5u h\u00ecnh th\u00eam.<\/p><\/dd>\n<dt id=\"%C4%90i%E1%BB%81u%20g%C3%AC%20x%E1%BA%A3y%20ra%20n%E1%BA%BFu%20kh%C3%A1ch%20h%C3%A0ng%20chuy%E1%BB%83n%20sai%20s%E1%BB%91%20ti%E1%BB%81n%3F\"><h3>\u0110i\u1ec1u g\u00ec x\u1ea3y ra n\u1ebfu kh\u00e1ch h\u00e0ng chuy\u1ec3n sai s\u1ed1 ti\u1ec1n?<\/h3><\/dt>\n<dd><p>N\u1ebfu s\u1ed1 ti\u1ec1n chuy\u1ec3n kho\u1ea3n \u00edt h\u01a1n t\u1ed5ng \u0111\u01a1n h\u00e0ng, plugin gi\u1eef \u0111\u01a1n h\u00e0ng \u1edf tr\u1ea1ng th\u00e1i <strong>Ch\u1edd x\u1eed l\u00fd<\/strong> v\u00e0 th\u00eam ghi ch\u00fa qu\u1ea3n tr\u1ecb k\u00e8m s\u1ed1 ti\u1ec1n \u0111\u00e3 nh\u1eadn. B\u1ea1n c\u00f3 th\u1ec3 xem x\u00e9t v\u00e0 x\u1eed l\u00fd thanh to\u00e1n thi\u1ebfu th\u1ee7 c\u00f4ng. Tr\u01b0\u1eddng h\u1ee3p chuy\u1ec3n th\u1eeba c\u0169ng theo lu\u1ed3ng t\u01b0\u01a1ng t\u1ef1 \u2014 \u0111\u01a1n h\u00e0ng \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u \u0111\u00e3 thanh to\u00e1n v\u00e0 ghi ch\u00fa ch\u00eanh l\u1ec7ch.<\/p><\/dd>\n<dt id=\"c%C3%B3%20an%20to%C3%A0n%20kh%C3%B4ng%3F%20ai%20%C4%91%C3%B3%20c%C3%B3%20th%E1%BB%83%20gi%E1%BA%A3%20m%E1%BA%A1o%20webhook%20kh%C3%B4ng%3F\"><h3>C\u00f3 an to\u00e0n kh\u00f4ng? Ai \u0111\u00f3 c\u00f3 th\u1ec3 gi\u1ea3 m\u1ea1o webhook kh\u00f4ng?<\/h3><\/dt>\n<dd><p>M\u1ecdi webhook \u0111\u1ec1u \u0111\u01b0\u1ee3c x\u00e1c th\u1ef1c b\u1eb1ng <strong>HMAC-SHA512<\/strong> v\u1edbi Secret Token c\u1ee7a b\u1ea1n. B\u1ea5t k\u1ef3 y\u00eau c\u1ea7u n\u00e0o c\u00f3 ch\u1eef k\u00fd kh\u00f4ng h\u1ee3p l\u1ec7 ho\u1eb7c thi\u1ebfu ch\u1eef k\u00fd \u0111\u1ec1u nh\u1eadn ph\u1ea3n h\u1ed3i <code>401 Unauthorized<\/code> v\u00e0 \u0111\u01a1n h\u00e0ng kh\u00f4ng bao gi\u1edd b\u1ecb thay \u0111\u1ed5i. T\u1ea5n c\u00f4ng ph\u00e1t l\u1ea1i c\u0169ng \u0111\u01b0\u1ee3c ng\u0103n ch\u1eb7n: m\u1ed7i ID giao d\u1ecbch \u0111\u01b0\u1ee3c l\u01b0u l\u1ea1i sau khi x\u1eed l\u00fd, n\u00ean vi\u1ec7c g\u1eedi l\u1ea1i c\u00f9ng m\u1ed9t webhook kh\u00f4ng c\u00f3 t\u00e1c d\u1ee5ng.<\/p><\/dd>\n<dt id=\"c%C3%B3%20ho%E1%BA%A1t%20%C4%91%E1%BB%99ng%20v%E1%BB%9Bi%20woocommerce%20checkout%20blocks%20m%E1%BB%9Bi%20kh%C3%B4ng%3F\"><h3>C\u00f3 ho\u1ea1t \u0111\u1ed9ng v\u1edbi WooCommerce Checkout Blocks m\u1edbi kh\u00f4ng?<\/h3><\/dt>\n<dd><p>C\u00f3. Plugin \u0111\u0103ng k\u00fd ph\u01b0\u01a1ng th\u1ee9c thanh to\u00e1n t\u01b0\u01a1ng th\u00edch Blocks th\u00f4ng qua <code>AbstractPaymentMethodType<\/code>, n\u00ean hi\u1ec3n th\u1ecb \u0111\u00fang c\u1ea3 \u1edf checkout shortcode c\u0169 l\u1eabn checkout d\u1ea1ng block m\u1edbi.<\/p><\/dd>\n<dt id=\"c%C3%B3%20t%C6%B0%C6%A1ng%20th%C3%ADch%20v%E1%BB%9Bi%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%20kh%C3%B4ng%3F\"><h3>C\u00f3 t\u01b0\u01a1ng th\u00edch v\u1edbi WooCommerce High-Performance Order Storage (HPOS) kh\u00f4ng?<\/h3><\/dt>\n<dd><p>C\u00f3. To\u00e0n b\u1ed9 d\u1eef li\u1ec7u \u0111\u01a1n h\u00e0ng \u0111\u01b0\u1ee3c \u0111\u1ecdc v\u00e0 ghi b\u1eb1ng <code>wc_get_order()<\/code>, <code>$order-&gt;get_meta()<\/code> v\u00e0 <code>$order-&gt;update_meta_data()<\/code> \u2014 t\u01b0\u01a1ng th\u00edch ho\u00e0n to\u00e0n v\u1edbi HPOS.<\/p><\/dd>\n<dt id=\"c%C3%A0i%20%C4%91%E1%BA%B7t%20c%E1%BB%A7a%20t%C3%B4i%20c%C3%B3%20b%E1%BB%8B%20x%C3%B3a%20n%E1%BA%BFu%20t%E1%BA%AFt%20plugin%20kh%C3%B4ng%3F\"><h3>C\u00e0i \u0111\u1eb7t c\u1ee7a t\u00f4i c\u00f3 b\u1ecb x\u00f3a n\u1ebfu t\u1eaft plugin kh\u00f4ng?<\/h3><\/dt>\n<dd><p>Kh\u00f4ng. C\u00e0i \u0111\u1eb7t \u0111\u01b0\u1ee3c gi\u1eef nguy\u00ean khi b\u1ea1n v\u00f4 hi\u1ec7u h\u00f3a plugin. Ch\u00fang ch\u1ec9 b\u1ecb x\u00f3a khi b\u1ea1n <strong>x\u00f3a<\/strong> plugin, v\u00e0 ch\u1ec9 khi t\u00f9y ch\u1ecdn \"X\u00f3a d\u1eef li\u1ec7u khi g\u1ee1 c\u00e0i \u0111\u1eb7t\" \u0111\u01b0\u1ee3c b\u1eadt trong c\u00e0i \u0111\u1eb7t.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Mode A: VietQR display on thank-you page with JS polling for automatic confirmation.<\/li>\n<li>Mode B: Redirect to Tingee hosted payment page.<\/li>\n<li>Webhook IPN handler with HMAC-SHA512 signature verification and idempotency protection.<\/li>\n<li>HPOS and Checkout Blocks compatibility.<\/li>\n<li>WC Logger integration with masked secrets.<\/li>\n<li>Vietnamese and English translations.<\/li>\n<li>Connection test button in settings.<\/li>\n<li>Static QR fallback when dynamic QR is not enabled on the merchant account.<\/li>\n<\/ul>","raw_excerpt":"Integrate Tingee (by HENO) payment gateway into WooCommerce. Supports VietQR, bank transfer auto-confirmation via Webhook IPN, and Checkout Blocks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323167"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cuongnguyenba"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323167"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323167"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323167"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323167"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323167"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}