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; }
///
/// 使用信用卡取得token
///
///
///
///
///
///
///
///
///
public CreditCardExchangeTokenResponse CreditCardExchangeToken(int amount, string cardNo, string cardExp, string cardCVV, string cardUserName, string note, bool testMode = true)
{
var transationUrl = TestPaymentUrl;
if (!testMode)
{
transationUrl = ProductPaymentUrl;
}
try
{
var client = new RestClient(transationUrl);
// 創建 POST 請求
var request = new RestRequest("token", Method.Post);
// 設置 JSON 數據
var transData = new
{
merchantId = MerchantId,
amount = amount,
cardNum = cardNo,
cardExp = cardExp,
cardCVV = cardCVV,
cardName = cardUserName,
note = note
};
// 添加 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(response.Content);
}
catch (Exception ex)
{
throw ex;
}
}
public class CreditCardExchangeTokenData
{
public string token { get; set; }
}
public class CreditCardExchangeTokenResponse
{
public string code { get; set; }
public CreditCardExchangeTokenData data { get; set; }
public string message { get; set; }
}
之後拿到 token 之後,就可以使用 token 來進行結帳
--
The bug existed in all possible states.
Until I ran the code.