C# 建行聚合支付


建行聚合支付

网上C# 的资料比较少,整理下来,欢迎沟通

1. 商户到银行

页面js可直接实现

var URL;
var tmp;
var tmp0;

CCBPaymentURL= "@ViewBag.CCBPaymentURL";  //"https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?CCB_IBSVersion=V6"  config或者appsetting信息

MERCHANTID = "@ViewBag.MERCHANTID";  
POSID = "@ViewBag.POSID";
BRANCHID = "@ViewBag.BRANCHID";
CURCODE = "@ViewBag.CURCODE";  //"01"
TXCODE = "@ViewBag.TXCODE";  //"530550"
REMARK1 = '';
REMARK2 = '';
PUB = "@ViewBag.PUB";  //商户后台下载的 商户公钥后30位


tmp = 'MERCHANTID=' + MERCHANTID + '&POSID=' + POSID + '&BRANCHID=' + BRANCHID + '&ORDERID=' + ORDERID;
tmp += '&PAYMENT=' + PAYMENT + '&CURCODE=' + CURCODE + '&TXCODE=' + TXCODE
+ '&REMARK1=' + REMARK1;
tmp += '&REMARK2=' + REMARK2;
tmp += '&RETURNTYPE=2';
tmp += '&TIMEOUT='
tmp0 = tmp;
tmp += '&PUB=' + PUB;

URL = CCBPaymentURL+ '&' + tmp0 + '&MAC=' + hex_md5(tmp) ;   

 

2. 银行回调商户地址通知支付结果

 

string requestqueryString = Request.QueryString.ToString().Replace("?",""); // 拿到回调的参数串
string remove = "";
var requestqueryStrings = requestqueryString.Split("&");
foreach (var item in requestqueryStrings)
{
  var items = item.Split("=");
  if(items[0] == "SIGN")
  {
    remove = item;
  }
}
string initString = requestqueryString.Replace("&"+remove, "");    //回调的参数串去除SIGN信息 参与验签

RSASig rsa = new RSASig();

rsa.setPublicKey(AllPUB);   //AllPUB 商户后台下载的 商户公钥全部(不要截取后30位,是全部)  config或者appsetting信息

bool result = rsa.verifySigature(Request.Query["SIGN"], initString);

string success = Request.Query["SUCCESS"];

if (result && success == "Y")
{

  //todo 处理 支付订单状态更改

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM