[C#] 快速上手 OEN 應援科技支付 API:C# 信用卡串接範例

2024-10-18

最近在幫朋友處理一家金流公司 OEN 應援科技 的串接,不過基本上,就是老樣子,我就是大概寫出來 sample code

之後的應用就看大家了,只是因為想說都比較少人分享 C# 上的 code ,自己剛好寫了就筆記一下



今天主要是寫在測試機上的信用卡串接,首先你得先到後台拿到 token 



之後還要拿到你們的 merchantid ,有這兩個資訊之後就可以開始測試了

private static string TestPaymentUrl { get { return "https://payment-api.testing.oen.tw/"; } } private static string ProductPaymentUrl { get { return "https://payment-api.oen.tw/"; } } public string MerchantId { get; set; } public string AuthToken { get; set; } /// <summary> // 使用信用卡付款 /// </summary> /// <param name="orderId"></param> /// <param name="amount"></param> /// <param name="cardNo"></param> /// <param name="cardExp"></param> /// <param name="cardCVV"></param> /// <param name="cardUserName"></param> /// <param name="prodId"></param> /// <param name="prodName"></param> /// <param name="prodQvt"></param> /// <param name="prodUnit"></param> /// <param name="userName"></param> /// <param name="userEmail"></param> /// <param name="testMode"></param> /// <returns></returns> public PayByCreditCardResponse PayByCreditCard(string orderId, int amount, string cardNo, string cardExp, string cardCVV, string cardUserName, string prodId, string prodName, int prodQvt, string prodUnit, string userName = "", string userEmail = "", bool testMode = true) { var transationUrl = TestPaymentUrl; if (!testMode) { transationUrl = ProductPaymentUrl; } try { var client = new RestClient(transationUrl); // 創建 POST 請求 var request = new RestRequest("transactions", Method.Post); // 設置 JSON 數據 var transData = new { merchantId = MerchantId, amount = amount, cardNum = cardNo, cardExp = cardExp, cardCVV = cardCVV, cardName = cardUserName, orderId = orderId, productDetails = new [] { new { productionCode=prodId, description= prodName, quantity =prodQvt, unit=prodUnit, unitPrice= amount, } } , userName = userName, userEmail = userEmail }; // 添加 JSON Body 到請求中 request.AddJsonBody(transData); request.AddHeader("Authorization", "Bearer " + AuthToken); request.AddHeader("Content-Type", "application/json"); // 發送請求並接收回應 var response = client.ExecuteAsync(request).Result; return JsonConvert.DeserializeObject<PayByCreditCardResponse>(response.Content); } catch (Exception ex) { throw ex; } } public class PayByCreditCardData { public string id { get; set; } public string transactionId { get; set; } public string authCode { get; set; } } public class PayByCreditCardResponse { public string code { get; set; } public PayByCreditCardData data { get; set; } public string message { get; set; } }


接下來就是呼叫端的程式碼:

var oenHandlr = new OENCashHandler(MerchantId, Token); var res = oenHandlr.PayByCreditCard("t" + DateTime.Now.ToString("mmddHHmmss"), 99 , "4242424242424242", "1026", "123", "Donma Hsu", "P001", "測試商品1", 1, "個"); Result = JsonConvert.SerializeObject(res); //response //{"code":"S0000","data":{"id":"P202410186LZVWMRH","transactionId":"2nbUM5uhQ1gkpeTiLc7xfAkVD21","authCode":"831000"},"message":""}



看程式碼就好,很簡單,有其他需要或是變形,可以自己在看他們家文件再修改


如果有需要就自行取用,不過這家算是新創的公司,這 API 之後都有可能修改,斟酌使用..



當麻許的碎念筆記 2014 | Donma Hsu Design.