TeeChart與TeeGrid FireMonkey設計跨平台儀表板

TeeChart與TeeGrid是Delphi上跨平台的第三方元件,目前展示了一個範例程式,可以製作企業用的儀表板畫面

https://www.steema.com/downloads/vcl

https://github.com/Steema/TeeChart-FireMonkey-samples/tree/master/Dashboard

 

 

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , , , | TeeChart與TeeGrid FireMonkey設計跨平台儀表板 已關閉迴響。

Delphi 10.3將支援行內變數


Twitter上看到Delphi 10.3將在這個月晚些更新支援行內變數。

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , | Delphi 10.3將支援行內變數 已關閉迴響。

Delphi 連接 SSL TLS 1.2 第三方支付金流問題

台灣最近銀行與第三方支付、行動支付發展越來越快,而Delphi使用indy元件時,如果處理SSL網站時不是很容易。
後來找到了ipwork的元件還不錯用。
列一下關鍵的程式

  ipwhttp1 := Tipwhttp.Create(Application);
 ipwhttp1.Config('CodePage=65001');
 posturl:=posturl+'barcode='+sBarcode;
 ipwhttp1.Post(sPaymentURL+'?'+posturl); 
 result:=UTF8ToString(ipwhttp1.TransferredData);
  ipwhttp1.free;

另外處理像SHA/AES等加解密也很方便

function GetTokenKey(s:String):String;
var ipcHash1: TipcHash;
begin
  ipcHash1 := TipcHash.Create(Application);
  ipcHash1.Reset();
  ipcHash1.Algorithm := TipcHashAlgorithms(haSHA256);
  ipcHash1.InputMessage := s;    
  ipcHash1.ComputeHash();
  result :=lowercase(ipcHash1.HashValue);
  ipcHash1.Free;
end;

我要留言

留言

發表於 Delphi | 已標籤 , , , , , , | Delphi 連接 SSL TLS 1.2 第三方支付金流問題 已關閉迴響。

RAD STUDIO 2018Roadmap

最近釋出了RAD STUDIO 新的ROADMAP開發藍圖。最主要的大概是 Professional版本不用額外買mobile開發套件,然後多了一個可以給student且功能與Professional相近的Community版本。目前主要仍著重於 Mobile(Android/IOS)以及語法的增進。

 

參考資料:

https://community.embarcadero.com/blogs/entry/august-2018-roadmap-commentary-from-product-management

https://community.embarcadero.com/article/news/16638-rad-studio-august-2018-roadmap?utm_source=article&utm_medium=email&utm_content=Article-180815-RADStudioRoadMap?

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , , | RAD STUDIO 2018Roadmap 已關閉迴響。

台灣電子商務網站常用金流線上付款服務-信用卡/ATM/超商代收/GooglePay/ApplePay

智付寶

https://www.spgateway.com/

歐付寶

https://www.opay.tw/

綠界

https://www.ecpay.com.tw/

速買配

http://www.smilepay.net/

 

我要留言

留言

發表於 金流服務, 電子商務 | 台灣電子商務網站常用金流線上付款服務-信用卡/ATM/超商代收/GooglePay/ApplePay 已關閉迴響。

AWS/Azure/GCP免費或學生資源

https://azure.microsoft.com/zh-tw/free/students/

https://aws.amazon.com/tw/education/awseducate/

https://aws.amazon.com/tw/free/

https://cloud.google.com/free/?hl=zh-Tw

 

我要留言

留言

發表於 創新服務網站 | 已標籤 , , , , , , | AWS/Azure/GCP免費或學生資源 已關閉迴響。

Delphi 推出社群版本(Community Edition)


Delphi推出了全新的社群版本(Community Edition),不像先前的starter版本。而是專業版加上iOS/Android功能。如果寫開放源始碼/免費軟體都可以,商業版的話限制為
1年收入不超過5000美金(約15萬台幣)
2成員不超過5人

 

延伸閱讀:

Learn to Program with Community Edition

Introducing Delphi and C++Builder Community Edition

我要留言

留言

發表於 APP介紹, Delphi, Delphi mobile開發, 程式設計 | 已標籤 , , , , , , , | Delphi 推出社群版本(Community Edition) 已關閉迴響。

C# WebAPI呼叫方式


var client = new WebClient();
var method = "POST";
var parameters = new NameValueCollection
{
{ "NAME", "林壽山" },
};
var response_data = client.UploadValues("$$API網址$$", method, parameters);
var responseString = UnicodeEncoding.UTF8.GetString(response_data);

如果回傳是JSON

dynamic json = JToken.Parse(responseString) as dynamic;

我要留言

留言

發表於 生活雜感 | C# WebAPI呼叫方式 已關閉迴響。

C# AES加解密

最近常遇到需要使用AES加解密的需求,無論是網路傳輸/API相關的部份。
分享一下
Github原始碼下載
https://github.com/superlevin/CSharpAES

using System.Security.Cryptography;
public static string SHAEncrypt(string str)
{
var crypt = new System.Security.Cryptography.SHA256Managed();
var hash = new System.Text.StringBuilder();
byte[] crypto = crypt.ComputeHash(Encoding.UTF8.GetBytes(str));
foreach (byte theByte in crypto)
{
hash.Append(theByte.ToString("x2"));
// x小寫 X 大寫 x2 補0
}
return hash.ToString();
}
public static string AESEncrypt(string str, string strkey, string strivKey, bool isVasEncrypt = false)
{

var aesCipher = new AesManaged
{
KeySize = 128,
BlockSize = 128,
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
};

var keyStr = KeyGenerator(strkey);
var key = Convert.FromBase64String(keyStr);
var ivKey = Encoding.UTF8.GetBytes(strivKey);
var input = str;
var ivStr = Convert.ToBase64String(ivKey);

aesCipher.Key = key;
aesCipher.IV = ivKey;
byte[] b = System.Text.Encoding.UTF8.GetBytes(str); // plain text to be encrypted
ICryptoTransform encryptTransform = aesCipher.CreateEncryptor();
byte[] cipherText = encryptTransform.TransformFinalBlock(b, 0, b.Length);
return Convert.ToBase64String(cipherText);
}
public static string AESDecrypt(string encstring, string strkey, string strivKey)
{
var aesCipher = new AesManaged
{
KeySize = 128,
BlockSize = 128,
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
};
var keyStr = KeyGenerator(strkey);
var key = Convert.FromBase64String(keyStr);
aesCipher.Key = key;
aesCipher.IV = Encoding.UTF8.GetBytes(strivKey);

var encryptBytes = Convert.FromBase64String(encstring);
ICryptoTransform decryptTransform = aesCipher.CreateDecryptor();
byte[] plainText = decryptTransform.TransformFinalBlock(encryptBytes, 0, encryptBytes.Length);

return System.Text.Encoding.UTF8.GetString(plainText);
}

我要留言

留言

發表於 程式設計 | 已標籤 , , , , , , , | C# AES加解密 已關閉迴響。