导航:首页 > 软件资讯 > app银行接口怎么弄

app银行接口怎么弄

发布时间:2023-07-29 10:10:37

㈠ ASP网站的建行网银接口怎么弄啊

建行的接口相对于支付宝,Q业务充值和移动,联通,电信,缴费接口要复杂一些,接口分为两块,一块是商户到银行,另外一块是银行到商户
1) 客户登录商户网站,选择商户网站商品。
2) 客户将选好的商品放入购物车,并下订单。商户提供商户代码、订单号、合计金额等信息;
3) 客户选择代理付款的银行-建行,确认后,商户代码、订单信息、合计金额通过浏览器URL传到建行网上银行站点; 网上银行自动显示支付页面,客户首先选择是否使用建行证书,然后输入龙卡号和密码,选择“确定”。支付信息经加密后传送到网银中心;
4) 网银中心接收客户支付信息,转发到银行后台业务处理系统;
5) 银行后台业务系统处理后,返回处理结果给网银;
6) 网银通知客户支付(扣帐)是否成功。如果扣帐成功,提示客户注意接收商户返回的送货信息;对于不需要立即响应的商户, 跳过步骤7、8;
7) 对于需要立即响应的商户,如果支付成功,网银将成功结果反馈给商户。若支付失败,不返回给商户信息
8) 对于需要立即响应的商户,收到银行扣帐成功的通知后,发给客户送货信息。如客户收到银行支付(扣帐)成功通知(步骤6), 但未收到商户送货信息,则需向商户查询。 日终时,商户与开设结算帐户的建设银行(网银成员行)进行流水核对,对已支付但未得到商户确认的交易进行退款处理。

商户到银行

--------------------------------------------------------------------------------

其实这一步是把自己卡里的钱转到商户的帐上,就是转账,

代码实现其实很简单,我们先来分析一上要传的参考吧

个人客户在商户网站选择商品后,商户网站生成以下信息,传送到建行网站:

域名
名称
类型
备注

MERCHANTID
商户代码
CHAR(9)
由建行统一分配

POSID
商户柜台代码
CHAR(9)
由建行统一分配,缺省为000000000

BRANCHID
分行代码
CHAR(9)
由建行统一指定

ORDERID
定单号
CHAR(30)
由商户提供,最长30位,按实际长度给出

PAYMENT
付款金额
NUMBER(16,2)
由商户提供,按实际金额给出

CURCODE
币种
CHAR(2)
缺省为01-人民币

REMARK1
备注1
CHAR(30)
网银不处理,直接传到城综网

REMARK2
备注2
CHAR(30)
网银不处理,直接传到城综网

TXCODE
交易码
CHAR(6)
由建行统一分配为520100

MAC
MAC校验域
CHAR(32)
采用标准MD5算法,由商户实现

注:商户要保证定单号的唯一性。

为了加快站点间接口开发,站点间接口的参数传送采用普通的URL方式,商户将以上信息包含在FORM中,在SUBMIT后将生成URL,如下所示:

https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=500.00&CURCODE=01

&TXCODE=520100&REMARK1=&REMARK2=&MAC=

参与MAC运算的字符及其顺序如下:

MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=500.00&CURCODE=01&

TXCODE=520100&REMARK1=&REMARK2=

注:字符串中变量名必须是大写字母。

这是建行文档说的说明,很明显这是使用Http的方式来实现的

下面我们动手来实现 一下吧,

我是把所有的参数生成了一个实体类这样方便,而且规范化,

来看看这个Model吧

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClientSystem.AliPay
{
///
/// 工行传入参数
///
public class CBBTextModel
{

private string _MERCHANTID = "";
///
/// 商户代码 由建行统一分配
///
public string MERCHANTID
{
get { return _MERCHANTID; }
set { _MERCHANTID = value; }
}

private string _POSID = "";
///
/// 商户柜台代码 由建行统一分配,缺省为000000000
///
public string POSID
{
get { return _POSID; }
set { _POSID = value; }
}

private string _BRANCHID = "";
///
/// 分行代码 由建行统一指定
///
public string BRANCHID
{
get { return _BRANCHID; }
set { _BRANCHID = value; }
}

private string _ORDERID = "";
///
/// 定单号 由商户提供,最长30位,按实际长度给出
///
public string ORDERID
{
get { return _ORDERID; }
set { _ORDERID = value; }
}

private decimal _PAYMENT = 0m;
///
/// 付款金额 由商户提供,按实际金额给出
///
public decimal PAYMENT
{
get { return _PAYMENT; }
set { _PAYMENT = value; }
}

private string _CURCODE = "";
///
/// 币种 缺省为01-人民币
///
public string CURCODE
{
get { return _CURCODE; }
set { _CURCODE = value; }
}

private string REMARK1 = "";
///
/// 备注1 网银不处理,直接传到城综网
///
public string REMARK11
{
get { return REMARK1; }
set { REMARK1 = value; }
}

private string REMARK2 = "";
///
/// 备注2 网银不处理,直接传到城综网
///
public string REMARK21
{
get { return REMARK2; }
set { REMARK2 = value; }
}

private string _TXCODE = "";
///
/// 交易码 由建行统一分配为520100
///
public string TXCODE
{
get { return _TXCODE; }
set { _TXCODE = value; }
}

private string _MAC = "";
///
/// MAC校验域 采用标准MD5算法,由商户实现
///
public string MAC
{
get { return _MAC; }
set { _MAC = value; }
}

private string _url = "";
///
/// URL
///
public string Url
{
get { return _url; }
set { _url = value; }
}

}
}

我们来准备两个方法吧,一个是Http连接来使用的一个是Md5加密,因为在文档里写到要使用Md5加密哦

代码
#region //预定义方法或是变量

///
/// 请求指定 URL 资源,并获取响应结果
///
/// 需要请求的 URL 资源
///
/// 响应结果;
/// 出现任意异常,均返回字串"Runtime Error"
///
private string RequestContent(string url)
{
string content = string.Empty;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
content = reader.ReadToEnd();
reader.Close();
}
catch (Exception)
{
content = "Runtime Error";
}
return content;
}

///
/// 传入明文,返回用MD%加密后的字符串
///
/// 要加密的字符串
/// 用MD5加密后的字符串
public static string ToMD5(string str)
{
return System.Web.Security.FormsAuthentication.(str, "md5");
}

#endregion

看一下充值按钮下面实现吧

代码
if (textBox1.Text.Trim() == "" || textBox1.Text.Trim() == null)
{
MessageBoxForm objm = new MessageBoxForm("您输入的金额不能为空!!!", "提示信息");
objm.ShowDialog();
return;
}
string orid = OfficeInfo.ofId.ToString().Trim() + "_" + DateTime.Now.Ticks.ToString();
Alipay objalipay = new Alipay();
objalipay.APID = orid;
objalipay.addTime = DateTime.Now;
objalipay.total_fee = Convert.ToDecimal(textBox1.Text.ToString().Trim());
objalipay.trade_status = "客户端提交";
objalipay.Text1 = DateTime.Now.ToString();
objalipay.Text2 = "建行接口";
objalipay.Text3 = "";
objalipay.Text4 = "";
objalipay.Text5 = "";

decimal money = Convert.ToDecimal(user.GetListBy(OfficeInfo.ofPara1, 13).ToString().Trim());
if (money > Convert.ToDecimal(textBox1.Text.Trim()))
{
MessageBoxForm objm = new MessageBoxForm("你输入的最小金额不能低于" + money + "元!!!", "提示信息");
objm.ShowDialog();
return;
}

if (user.AddAlipay(OfficeInfo.ofPara1, objalipay))
{
CBBTextModel objcbbText = new CBBTextModel();

//商户代码 由建行统一分配
objcbbText.MERCHANTID = "105411248160006";

//商户柜台代码 由建行统一分配,缺省为000000000

objcbbText.POSID = "768362719";

//分行代码 由建行统一指定
objcbbText.BRANCHID = "410000000";

// 定单号 由商户提供,最长30位,按实际长度给出
objcbbText.ORDERID = orid.Trim();

//付款金额 由商户提供,按实际金额给出
objcbbText.PAYMENT = Convert.ToDecimal(textBox1.Text.Trim());

//币种 缺省为01-人民币
objcbbText.CURCODE = "01";

//备注1 网银不处理,直接传到城综网
objcbbText.REMARK11 = "";

//备注2 网银不处理,直接传到城综网
objcbbText.REMARK21 = "";

//交易码 由建行统一分配为520100
objcbbText.TXCODE = "520100";

//MAC校验域 采用标准MD5算法,由商户实现
objcbbText.MAC = "";

//URL
objcbbText.Url = "https://ibsbjstar.ccb.com.cn/app/ccbMain";

//要加密的串
string canshu = "MERCHANTID=" + objcbbText.MERCHANTID.Trim() +
"&POSID=" + objcbbText.POSID.Trim() + "&BRANCHID=" + objcbbText.BRANCHID.Trim()
+ "&ORDERID=" + objcbbText.ORDERID.Trim() + "&PAYMENT=" + objcbbText.PAYMENT.ToString().Trim()
+ "&CURCODE=" + objcbbText.CURCODE + "&TXCODE=" + objcbbText.TXCODE.Trim()
+ "&REMARK1=&REMARK2=";

objcbbText.MAC = ToMD5(canshu.Trim()).ToLower().Trim();
string strURl = objcbbText.Url + "?" + canshu + "&MAC=" + objcbbText.MAC.Trim();
webBrowser1.Url = new Uri(strURl.Trim());
}
}

在这里大家一定要注意把 objcbbText.MAC = ToMD5(canshu.Trim()).ToLower().Trim();
加密后的字符串改成小写的

上面所提到的

代码
string orid = OfficeInfo.ofId.ToString().Trim() + "_" + DateTime.Now.Ticks.ToString();
Alipay objalipay = new Alipay();
objalipay.APID = orid;
objalipay.addTime = DateTime.Now;
objalipay.total_fee = Convert.ToDecimal(textBox1.Text.ToString().Trim());
objalipay.trade_status = "客户端提交";
objalipay.Text1 = DateTime.Now.ToString();
objalipay.Text2 = "建行接口";
objalipay.Text3 = "";
objalipay.Text4 = "";
objalipay.Text5 = "";

decimal money = Convert.ToDecimal(user.GetListBy(OfficeInfo.ofPara1, 13).ToString().Trim());
if (money > Convert.ToDecimal(textBox1.Text.Trim()))
{
MessageBoxForm objm = new MessageBoxForm("你输入的最小金额不能低于" + money + "元!!!", "提示信息");
objm.ShowDialog();
return;
}

if (user.AddAlipay(OfficeInfo.ofPara1, objalipay))
{

这一部分代码是记录日志的,大家可以参考一下

我们现在只要运行程序就会出现如下界面所显示的内容

下面的操作就是输入你的卡号密码就可以了,

转账成功后我们这一步的工作就算是做完了

㈡ 新开发的APP,带有便民缴费功能,如何与银行对接

新开发的APP,带有便民交费功能,可以拿着身份证去银行对接。

阅读全文

与app银行接口怎么弄相关的资料

热点内容
活塞式压缩机原理图 浏览:842
水环式压缩机工作原理 浏览:713
阿里云服务器安装后怎么使用 浏览:931
去做APP开户有什么危险没得啊 浏览:696
8分之1乘58算法 浏览:170
php提交过滤 浏览:356
豪斯曼检验stata命令 浏览:769
云看地是什么APP 浏览:885
数学指南pdf 浏览:858
phpcurldll64位 浏览:982
程序员脱产一年半 浏览:851
hr招程序员有什么条件 浏览:589
android开源集合 浏览:872
华为云服务器登录密码和账号 浏览:154
中世纪java程序员 浏览:788
什么开发引擎使用python 浏览:177
sh脚本运行命令 浏览:318
广联达加密锁怎么看到期 浏览:174
cad轨迹命令 浏览:981
同事刷到女程序员自媒体视频 浏览:573