/** * 向日志写入出错信息 * @param className 类名 * @param content 写入内容 */ public static void Error(string className, string content) { if (BlinkPayCardConfig.GetConfig().GetLogLevel() >= 1) { WriteLog("ERROR", className, content); } }
/** * @生成签名,详见签名生成算法 * @return 签名, sign字段不参加签名 */ public string MakeSign(string signType) { //转url格式 string str = ToUrl(); //在string后加入API KEY str += "&key=" + BlinkPayCardConfig.GetConfig().GetAppKey(); if (signType == SIGN_TYPE_MD5) { var md5 = MD5.Create(); var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); var sb = new StringBuilder(); foreach (byte b in bs) { sb.Append(b.ToString("x2")); } //所有字符转为大写 return(sb.ToString().ToUpper()); } else if (signType == SIGN_TYPE_HMAC_SHA256) { return(CalcHMACSHA256Hash(str, BlinkPayCardConfig.GetConfig().GetAppKey())); } else { throw new BlinkPayCardException("sign_type 不合法"); } }
/** * 向日志写入运行时信息 * @param className 类名 * @param content 写入内容 */ public static void Info(string className, string content) { if (BlinkPayCardConfig.GetConfig().GetLogLevel() >= 2) { WriteLog("INFO", className, content); } }
/** * 向日志写入调试信息 * @param className 类名 * @param content 写入内容 */ public static void Debug(string className, string content) { if (BlinkPayCardConfig.GetConfig().GetLogLevel() >= 3) { WriteLog("DEBUG", className, content); } }
/** * * 充值下单 * 该接口用于平台方从BlinkPayCard系统获取充值预下单号。 * 平台方通过Post请求调用该接口,从返回结果中解析过预下单号(pre_order)。 * @param BlinkPayCardData inputObj 提交给查询订单API的参数 * @throws BlinkPayCardException * @return 预下单号 */ public static string PreOrder(BlinkPayCardData inputObj) { string url = "https://pay.api.blinkpaycard.com/pay/preOrder"; inputObj.SetValue("app_id", BlinkPayCardConfig.GetConfig().GetAppID()); inputObj.SetValue("mch_id", BlinkPayCardConfig.GetConfig().GetMchID()); inputObj.SetValue("osu_number", GenerateNonceStr()); inputObj.SetValue("amount", "100"); inputObj.SetValue("currency", "CNY"); inputObj.SetValue("sign_type", BlinkPayCardData.SIGN_TYPE_MD5); inputObj.SetValue("sign", inputObj.MakeSign(BlinkPayCardData.SIGN_TYPE_MD5));//签名 string json = inputObj.ToJson(); Console.WriteLine("PreOrder request : " + json); string response = HttpService.Post(json, url);//调用HTTP通信接口提交数据 Console.WriteLine("PreOrder response : " + response); JsonData resultObj = JsonMapper.ToObject(response); string pre_order = (string)resultObj["result"]["pre_order"]; //JsonData preOrderObj = JsonMapper.ToObject(response); //string pre_order = (string)preOrderObj["pre_order"]; return(pre_order); }
/** * * 查询订单 * @param BlinkPayCardData inputObj 提交给查询订单API的参数 * @throws BlinkPayCardException * @return 成功时返回订单查询结果,其他抛异常 */ public static BlinkPayCardData OrderQuery(BlinkPayCardData inputObj, string pre_order) { string url = "https://pay.api.blinkpaycard.com/pay/queryResult"; inputObj.SetValue("app_id", BlinkPayCardConfig.GetConfig().GetAppID()); inputObj.SetValue("mch_id", BlinkPayCardConfig.GetConfig().GetMchID()); inputObj.SetValue("pre_order", pre_order); inputObj.SetValue("sign_type", BlinkPayCardData.SIGN_TYPE_MD5); inputObj.SetValue("sign", inputObj.MakeSign(BlinkPayCardData.SIGN_TYPE_MD5));//签名 string json = inputObj.ToJson(); Console.WriteLine("OrderQuery request : " + json); string response = HttpService.Post(json, url);//调用HTTP通信接口提交数据 Console.WriteLine("OrderQuery response : " + response); BlinkPayCardData result = new BlinkPayCardData(); return(result); }
/** * 网页充值 *合作平台⽅方系统根据充值下单接⼝口获取的预下单号(pre_order)与BlinkPay Card系统分配的商户 ID(mch_id)获取BlinkPay Card⽹网⻚页充值⻚页⾯面 * @param mchId * @param preOrder 预下单号 * @return * @throws Exception */ private static String WebPay(String preOrder) { string mch_id = BlinkPayCardConfig.GetConfig().GetMchID(); return("http://pay.blinkpaycard.com/?mch_id=" + mch_id + "&pre_order=" + preOrder); }