{"id":3342,"date":"2025-12-04T17:19:15","date_gmt":"2025-12-04T09:19:15","guid":{"rendered":"https:\/\/blog.quantoyo.com\/?p=3342"},"modified":"2025-12-04T17:20:24","modified_gmt":"2025-12-04T09:20:24","slug":"%e7%b6%a0%e7%95%8cec-pay-php%e4%b8%b2%e6%8e%a5","status":"publish","type":"post","link":"https:\/\/blog.quantoyo.com\/?p=3342","title":{"rendered":"\u7da0\u754c(EC pay) &#8211; PHP\u4e32\u63a5"},"content":{"rendered":"\n<p>\u70ba\u4e86\u80fd\u6536\u4fe1\u7528\u5361\u8ddfApple pay<\/p>\n\n\n\n<p>\u4e32\u63a5\u4e86\u7da0\u754c<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>\u7da0\u754c\u4e32\u63a5\u65b9\u6cd5\u9700\u8981\u4f7f\u7528 FORM \u8f49\u9801\uff0c\u6240\u4ee5\u9700\u8981\u81ea\u5df1\u505a\u4e00\u9801\u7c21\u55ae\u7684html<\/p>\n\n\n\n<pre class=\"wp-block-code has-cyan-bluish-gray-background-color has-background\"><code>&lt;?php\ninclude(\".\/EC_CheckMacValue.php\");\n\n$paymentUrl = \"https:\/\/payment.ecpay.com.tw\/Cashier\/AioCheckOut\/V5\";\n$MerchantID        = \"\u8ddf\u7da0\u754c\u8981\";         \/\/\u5ee0\u5546ID\n$MerchantTradeNo   = \"\u4e00\u500b\u4e0d\u91cd\u8907\u7684\u96a8\u6a5f\u4e82\u78bc\";    \/\/\u81ea\u5df1\u7522\u751f\u7684\u8a02\u55aeid(\u4e0d\u80fd\u91cd\u8907)\n$MerchantTradeDate = date(\"Y\/m\/d H:i:s\");\n$PaymentType       = \"aio\";\n\n$TotalAmount        = \"123\";       \/\/\u91d1\u984d\n$TradeDesc          = \"\u4ed8\u6b3e\u63cf\u8ff0\";\n$ItemName           = \"\u4ed8\u6b3e\u63cf\u8ff0\";\n\n\n$ReturnURL         = \"\u5728\u7da0\u754c\u4ed8\u6b3e\u5f8c\uff0c\u63a5\u6536\u56de\u547c\u7684\u7db2\u5740\";\n$ChoosePayment     = \"Credit\";   \/\/\u6211\u9019\u908a\u53ea\u63a5\u53d7\u4fe1\u7528\u5361\uff0c\u5176\u5be6\u9084\u6709\u5176\u4ed6\u9078\u9805\n$EncryptType       = \"1\";\n$HashKey = \"\";          \/\/\u8ddf\u7da0\u754c\u8981\n$HashIV   = \"\";         \/\/\u8ddf\u7da0\u754c\u8981\n$method = 'sha256';\n\n$reqObj = array();\n$reqObj&#91;\"MerchantID\"] = $MerchantID;\n$reqObj&#91;\"MerchantTradeNo\"] = $MerchantTradeNo;\n$reqObj&#91;\"MerchantTradeDate\"] = $MerchantTradeDate;\n$reqObj&#91;\"PaymentType\"] = $PaymentType;\n$reqObj&#91;\"TotalAmount\"] = $TotalAmount;\n$reqObj&#91;\"TradeDesc\"] = $TradeDesc;\n$reqObj&#91;\"ItemName\"] = $ItemName;\n$reqObj&#91;\"ReturnURL\"] = $ReturnURL;\n$reqObj&#91;\"ChoosePayment\"] = $ChoosePayment;\n$reqObj&#91;\"EncryptType\"] = $EncryptType;\n\n$chk = new CheckMacValueService($HashKey, $HashIV, $method);\n$CheckMacValue = $chk-&gt;generate($reqObj);\n\n?&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"zh-Hant\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;\u7da0\u754c\u4ed8\u6b3e\u9801\u9762&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;form id=\"ecpay-form\" method=\"post\" action=\"&lt;?php echo $paymentUrl; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"MerchantID\" value=\"&lt;?php echo $MerchantID; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"MerchantTradeNo\" value=\"&lt;?php echo $MerchantTradeNo; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"MerchantTradeDate\" value=\"&lt;?php echo $MerchantTradeDate; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"PaymentType\" value=\"&lt;?php echo $PaymentType; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"TotalAmount\" value=\"&lt;?php echo $TotalAmount; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"TradeDesc\" value=\"&lt;?php echo $TradeDesc; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"ItemName\" value=\"&lt;?php echo $ItemName; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"ReturnURL\" value=\"&lt;?php echo $ReturnURL; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"ChoosePayment\" value=\"&lt;?php echo $ChoosePayment; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"EncryptType\" value=\"&lt;?php echo $EncryptType; ?&gt;\"&gt;\n        &lt;input type=\"hidden\" name=\"CheckMacValue\" value=\"&lt;?php echo $CheckMacValue; ?&gt;\"&gt;\n    &lt;\/form&gt;\n\n    &lt;script&gt;\n        document.getElementById(\"ecpay-form\").submit();\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u5c31\u662f\u4e00\u500b\u80fd\u4f7f\u7528\u7684\u7bc4\u4f8b\uff0c\u53e6\u5916\u9019\u500b\u5de5\u5177\u6a94\u6848\u662f\u7da0\u754c\u63d0\u4f9b\u7684<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-1cb90eaf-aa0a-4dad-8534-c644cbf92f17\" href=\"https:\/\/blog.quantoyo.com\/wp-content\/uploads\/2025\/12\/EC_CheckMacValue.php_.zip\">EC_CheckMacValue.php<\/a><a href=\"https:\/\/blog.quantoyo.com\/wp-content\/uploads\/2025\/12\/EC_CheckMacValue.php_.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-1cb90eaf-aa0a-4dad-8534-c644cbf92f17\">\u4e0b\u8f09<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>\u7136\u5f8c\u9700\u8981\u53e6\u4e00\u96bbphp \u4f86\u63a5\u6536 \u7da0\u754c\u4ed8\u6b3e\u5f8c\u9001\u904e\u4f86\u78ba\u8a8d\u7684\u8a0a\u606f\uff0c\u9019\u96bb\u8981\u8a18\u5f97\u6700\u5f8c\u8981 echo &#8216;1|OK&#8217;;<\/p>\n\n\n\n<pre class=\"wp-block-code has-cyan-bluish-gray-background-color has-background has-small-font-size\"><code>&lt;?php\ninclude(\".\/EC_CheckMacValue.php\");\n$HashKey = \"\u8ddf\u7da0\u754c\u8981\";\n$HashIV   = \"\u8ddf\u7da0\u754c\u8981\";\n$method = 'sha256';\n\n$reqObj = $_POST;\n\n$chk = new CheckMacValueService($HashKey, $HashIV, $method);\n$CheckMacValue = $chk-&gt;generate($reqObj);\n\nif($_POST&#91;\"CheckMacValue\"] == $CheckMacValue &amp;&amp; $_POST&#91;\"RtnCode\"] == \"1\"){\n    \/\/\u5237\u5361\u6210\u529f\uff0c\u9019\u908a\u53ef\u4ee5\u53d6\u51fa\u7da0\u754c\u50b3\u904e\u4f86\u7684\u8a0a\u606f\uff0c\u81ea\u5df1\u505a\u9a57\u8b49\u770b\u662f\u4e0d\u662f\u6709\u9019\u7b46\u8a02\u55ae\u7b49\u7b49...\n    $amount = $_POST&#91;\"TradeAmt\"];\n    $EC_TradeNo = $_POST&#91;\"TradeNo\"];        \/\/\u9019\u500b\u5c31\u662f\u4e00\u958b\u59cb\u50b3\u9001\u7684 MerchantTradeNo\n    $paymentTypeChargeFee  = $_POST&#91;\"PaymentTypeChargeFee\"];\n    $rtnCode = $_POST&#91;\"RtnCode\"];\n    $rtnMsg = $_POST&#91;\"RtnMsg\"];\n    $simulatePaid = $_POST&#91;\"SimulatePaid\"];\n}\necho '1|OK';\n\n?&gt;<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u70ba\u4e86\u80fd\u6536\u4fe1\u7528\u5361\u8ddfApple pay \u4e32\u63a5\u4e86\u7da0\u754c<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[640,76,152,641],"class_list":["post-3342","post","type-post","status-publish","format-standard","hentry","category-technology","tag-ec-pay","tag-php","tag-152","tag-641"],"_links":{"self":[{"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/posts\/3342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3342"}],"version-history":[{"count":2,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/posts\/3342\/revisions"}],"predecessor-version":[{"id":3345,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=\/wp\/v2\/posts\/3342\/revisions\/3345"}],"wp:attachment":[{"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.quantoyo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}