1. 程式人生 > >銀聯支付接口之退貨

銀聯支付接口之退貨

logger ase com stat byte 封裝 dict end long

接收公司的銀聯支付項目,已經是第三個版本了,現在的是引用了UPOPSDK.dll,使用了封裝操作的方法,和官網現在的Demo操作方式不太一樣,而且找不到太多的文檔資料。任務是增加銀聯退貨的接口,查了很多的資料找到了點感覺,經過無數次的嘗試,最後還是執行成功了,下面上接口方法。

     /// <summary>
        /// 銀聯網關支付退款
        /// </summary>
        /// <param name="newUnionId">新的銀聯訂單編號</param>
        /// <param name="queryIdUnion">
要退款的銀聯流水編號</param> /// <param name="orderRefundDate">當前退款操作時間</param> /// <param name="payAmount">要退款的金額</param> /// <param name="_bank"></param> /// <returns></returns> public static bool UnionOnlineRefund(string newUnionId, string
queryIdUnion, DateTime orderRefundDate, decimal payAmount, BankDomains _bank) { bool flag = false; try { UPOPSrv.LoadConf(new MemoryStream(byteBuffer)); var param = new Dictionary<string, string>(); param[
"transType"] = UPOPSrv.TransType.REFUND; param["orderNumber"] = RefundPre() + newUnionId; long amtInt = (int)(payAmount * 100);
          //這個參數讓我好找。。。 param[
"origQid"] = queryIdUnion; param["orderAmount"] = amtInt.ToString(); param["orderCurrency"] = UPOPSrv.CURRENCY_CNY; param["orderTime"] = orderRefundDate.ToString("yyyyMMddHHmmss"); param["customerIp"] = _bank.ClientIP(); param["frontEndUrl"] = "http://www.baidu.cn/"; param["backEndUrl"] = "http://www.baidu.cn/"; var srv = new BackPaySrv(param); var resp = srv.Request(); if (resp == null) { return flag; } if (resp.ResponseCode == "00") { flag = true; } else { var logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); logger.Error("退款失敗代碼:\r\n" + JsonConvert.SerializeObject(resp)); } } catch (Exception ex) { var logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); logger.Error("錯誤信息:\r\n" + ex.ToString()); } return flag; }

Config中的配置參數,靈感來源這裏

  <payParams>
    <string>version</string>
    <string>charset</string>
    <string>transType</string>
    <string>origQid</string>
    <string>merId</string>
    <string>merAbbr</string>
    <string>acqCode</string>
    <string>merCode</string>
    <string>commodityUrl</string>
    <string>commodityName</string>
    <string>commodityUnitPrice</string>
    <string>commodityQuantity</string>
    <string>commodityDiscount</string>
    <string>transferFee</string>
    <string>orderNumber</string>
    <string>orderAmount</string>
    <string>orderCurrency</string>
    <string>orderTime</string>
    <string>customerIp</string>
    <string>customerName</string>
    <string>defaultPayType</string>
    <string>defaultBankNumber</string>
    <string>transTimeout</string>
    <string>frontEndUrl</string>
    <string>backEndUrl</string>
    <string>merReserved</string>
  </payParams>

文檔實在不好找。。。昨天還提交了個工單,到下班無人理會,銀聯老大。。。

銀聯支付接口之退貨