|
歐富寶大大你好
我COPY了下面網址的原始代碼
https://developers.opay.tw/AioCreditCard/CreateOrder
並改了一些變數帶入
請問為什麼一直錯誤
原始碼如下
請問大大我哪裡弄錯了
麻煩大大了
原來是字串末端HashIV打成HashKey
- <?php
- include('Opay.Payment.Integration.php');
- $opay = new OpayCheckMacValue1;
- date_default_timezone_set("Asia/Taipei");
- $HashKey="5294y06JbISpM5x9";
- $HashIV="v77hoKGq4kWxNNIS";
- $items = "MacBook 30元X2#iPhone6s 40元X1";
- $TD = "建立信用卡測試訂單";
- $dateMTN = "A".date("YmdHis");
- $dateMTD = date("Y/m/d H:i:s");
- $returnurl = "https://developers.opay.tw/AioMock/MerchantReturnUrl";
- $clientbackURL = "https://developers.opay.tw/AioMock/MerchantClientBackUrl";
- echo $opystr = "HashKey=".$HashKey."&ChoosePayment=Credit&ClientBackURL=".$clientbackURL."&CreditInstallment=&EncryptType=1&InstallmentAmount=&ItemName=".$items."&MerchantID=2000132&MerchantTradeDate=".$dateMTD."&MerchantTradeNo=".$dateMTN."&PaymentType=aio&Redeem=&ReturnURL=".$returnurl."&StoreID=&TotalAmount=5&TradeDesc=".$TD."&HashKey=".$HashKey;
- $opyUrlEncode = $opay->generate($opystr);
- //echo $opyUrlEncode ;
- ?>
- <form id="formCreditCard" method="post" accept-charset="UTF-8" action="https://payment-stage.opay.tw/Cashier/AioCheckOut/V5">
- MerchantID 商店代號:
- <input type="text" name="MerchantID" value="2000132" /><br />
- MerchantTradeNo 商店交易編號:
- <input type="text" name="MerchantTradeNo" value="<?php echo $dateMTN; ?>" /><br />
- MerchantTradeDate 商店交易時間:
- <input type="text" name="MerchantTradeDate" value="<?php echo $dateMTD; ?>" /><br />
- PaymentType 交易類型:
- <input type="text" name="PaymentType" value="aio" /><br />
- TotalAmount 交易金額:
- <input type="text" name="TotalAmount" value="5" /><br />
- TradeDesc 交易描述:
- <input type="text" name="TradeDesc" value="<?php echo $TD ?>" /><br />
- ItemName 商品名稱:
- <input type="text" name="ItemName" value="<?php echo $items ?>" /><br />
- ReturnURL 付款完成通知回傳網址:
- <input type="text" name="ReturnURL" value="<?php echo $returnurl ?>" /><br />
- ChoosePayment 預設付款方式:
- <input type="text" name="ChoosePayment" value="Credit" /><br />
- 會員商店代碼:
- <input type="text" name="StoreID" value="" /><br />
- ClientBackURL Client端返回廠商網址:
- <input type="text" name="ClientBackURL" value="<?php echo $clientbackURL?>" /><br />
- CreditInstallment 刷卡分期期數:
- <input type="text" name="CreditInstallment" value="" /><br />
- InstallmentAmount 使用刷卡分期的付款金額:
- <input type="text" name="InstallmentAmount" value="" /><br />
- Redeem 信用卡是否使用紅利折抵:
- <input type="text" name="Redeem" value="" /><br />
- CheckMacValue 簽章類型:
- <input type="text" name="EncryptType" value="1" /><br />
- CheckMacValue 檢查碼:
- <input type="text" name="CheckMacValue" value="<?php echo $opyUrlEncode;?>" /><br />
- <input type="submit" value="送出訂單" />
- </form>
-
- <?php
- class OpayCheckMacValue1
- {
- public function generate($arParameters ){
- //echo $arParameters."<br>";
- $sMacValue = '' ;
- if(isset($arParameters))
- {
- $sMacValue = urlencode($arParameters);
- // 轉成小寫
- $sMacValue = strtolower($sMacValue);
- // 取代為與 dotNet 相符的字元
- $sMacValue = str_replace('%2d', '-', $sMacValue);
- $sMacValue = str_replace('%5f', '_', $sMacValue);
- $sMacValue = str_replace('%2e', '.', $sMacValue);
- $sMacValue = str_replace('%21', '!', $sMacValue);
- $sMacValue = str_replace('%2a', '*', $sMacValue);
- $sMacValue = str_replace('%28', '(', $sMacValue);
- $sMacValue = str_replace('%29', ')', $sMacValue);
- // 編碼
- //echo "result:".$sMacValue;
- $sMacValue = hash('sha256', $sMacValue);
- $sMacValue = strtoupper($sMacValue);
- }
- return $sMacValue ;
- }
- /**
- * 自訂排序使用
- */
- private static function merchantSort($a,$b)
- {
- return strcasecmp($a, $b);
- }
- }
- ?>
複製代碼
|
|