在Linpay整合的時候有遇到中文亂碼的問題
以下參考
HTTP := TIdHTTP.Create(nil);
HTTP.HandleRedirects := True;
LoadOpenSSLLibrary;
HTTP.Request.CustomHeaders.AddValue('X-LINE-ChannelId', PlatformID);
HTTP.Request.CustomHeaders.AddValue('X-LINE-ChannelSecret', MerchantID);
HTTP.Request.ContentType := 'application/json';
HTTP.Request.CharSet := 'UTF-8';
try
try
JsonData := SO;
JsonData.s['productName '] := xMemo; { TODO : 中文字是這行 }
JsonData.i['amount'] := StrtoInt(xPay) ;
JsonData.s['currency'] := 'TWD';
JsonData.s['orderId'] := xorderId;
JsonData.s['oneTimeKey'] := xbuyerID;
JsonData.s['capture '] := 'true';
Source := TStringStream.Create(JsonData.AsString, 65001);
{ TODO : 上面這行必須得用stream 並使用65001就好.....POST的時候參數送Stream,不要送TStrings }
try
HTTP.IOHandler := FHandlerSSL;
try
mCMVstr := HTTP.Post( 'https://'+FLineConnectStr+'/v2/payments/oneTimeKeys/pay', Source);
except
{ TODO : 發生錯誤不管3721 就是下重查 失敗就跳離。別那麼多毛病。 }
if not Result then
begin
exit;
end;
end;
以下略.........................................