首信易支付v43接口说明.doc
《首信易支付v43接口说明.doc》由会员分享,可在线阅读,更多相关《首信易支付v43接口说明.doc(12页珍藏版)》请在三一文库上搜索。
1、首信易支付(v4.3)接口说明(首信易支付商户后台管理系统 )首信易支付流程及功能简要介绍 首信易支付网上支付主要流程大致分为商户交易订单提交过程和银行订单确认这两个部分。首先,当消费者在商户处完成购物过程,在商户端服务器形成最终订单(订单参数格式见文档第一部分“”说明)且消费者选择首信易支付方式时,该接口程序将消费者订单中有关支付的信息引导到首信易支付平台,消费者在该平台选择银行进行网上支付交易。当交易完成后,首信易支付平台可以通过两种方式通知商户银行对该笔订单的确认消息,商户根据实际业务需要选择这两种方式(其中任一种或者全部)编写相应的程序来接收银行返回的相关支付确认参数,通过对参数的判断
2、来进行后续的业务操作。1 前台页面链接方式:这种方式接收的参数格式见文档第二部分“”说明,是将此次支付订单的交易结果(参数)以页面连接的形式发送给商户。这里的前台指这个参数传递过程对持卡消费者是可见的。这种方式的特点是:返回参数的实时性好。但有个别几种支付方式不支持这种方式,有诸如网络中断或者持卡消费者不按要求操作等情况出现时,这种方式会有漏单(银行支付确认消息商户收不到)的现象。一旦出现漏单的情况,商户只能通过后台接口程序方式接收银行订单支付确认消息,或者登录到首信易支付商户后台管理系统查询确认。注意:这种方式接收程序的地址由商户在提交订单时参数v_url的值来指定,无需事先通知首信易支付平
3、台,如有变更只需要在提交订单参数时修改v_url的值即可。2 后台接口程序方式:这种方式接收的参数格式见文档第三部分“”说明,是由首信易支付平台转发银行支付确认信息。这种方式是首信易支付平台服务器与商户服务器之间进行通信的,对于持卡消费者是不可见的。这种方式的特点是:支持平台上所有的支付方式,而且在与商户的通信过程中如有网络故障,此方式支持自动重发功能(在首次发送的24小时内)。注意:这种方式接收程序的地址需要由商户来确定,在商户号开通时所填写的初始单中,填写在“订单支付确认返回地址”一栏,并由首信易支付平台管理员按照初始单内容进行开通。开通后如有修改,需要事先通知管理员确认修改。最后,首信易
4、支付将根据交易金额通知银行转帐。通常情况下,首信易支付结算中心会在周一、周四进行转帐工作,但需要满足本地商户本次转帐金额达到两百元人民币、外埠商户本次转帐金额达到六百元人民币的条件。如果不满足上述金额则累计到下次转帐时一起完成。在一旦转帐成功,将立即通知商户转帐结果,通知接口的参数格式为文档第四部分“”说明。此接口地址由商户确认,填写在初始单中“转帐确认通知接口”一栏中。商户开通后,如果需要更改也要事先通知管理员确认后修改。注意:通知商户转帐过程与网上支付交易是两个相对独立的过程,转帐工作是由首信易支付结算中心工作人员线下完成的,在通知银行进行转帐工作后,会通过“”将本次转帐的所有订单号发给商
5、户。由于这个接口发送的信息只是起到通知作用,不会影响商户的实际转帐工作。因此商户可以根据自己的实际需要选择是否使用这个接口。(本接口可选)各接口的具体格式如下:一、商户提交待付款订单接口(商户首信易支付)用途:用来接收商户发来的订单信息1、 CGI程序接口form method=post action=2、 FORM表单参数说明1 商户编号(v_mid) 说明:不可为空值,以初始单上所填商户编号为准。2 订单编号(v_oid) 说明:不可为空值,首信易支付订单编号格式统一为:订单生成日期(yyyymmdd)-商户编号-商户流水号 例如:19990720-888-12345。商户流水号为数字,每
6、日内不重复即可。 注:订单编号所有字符总和不可超过64位,否则首信易支付平台拒绝接受。3 收货人姓名(v_rcvname) 说明:不可为空值,统一用商户编号的值代替。4 收货人地址(v_rcvaddr) 说明:不可为空值,总长不超过128个字符。5 收货人电话(v_rcvtel) 说明:不可为空值,总长不超过32个字符。6 收货人邮政编码(v_rcvpost) 说明:不可为空值,总长不超过12个字符。7 订单总金额(v_amount) 说明:不可为空值,单位:元,小数点后保留两位,如13.458 订单产生日期(v_ymd) 说明:不可为空值,长度为8位,格式为yyyymmdd9 配货状态(v_
7、orderstatus) 说明:商户配货状态,0为未配齐,1为已配齐10订货人姓名(v_ordername) 说明:总长不超过64个字符11支付币种(v_moneytype) 说明:0为人民币,1为美元12返回商户页面地址(v_url) 说明:为消费者完成购物后返回的商户页面,此地址为页面连接方式的返回地址,在此地址放置接收程序用于接收银行返回的支付确认消息(参数格式参照文档第二部分)。URL参数是以http:/开头的完整URL地址。13订单数字指纹(v_md5info) 详情见md5说明注:以上参数值中不能包含以下特殊字符”&()3、示例(注:此例商户号888应改为您的商户号)form na
8、me=form method=post action= 商户编号 订单编号 收货人姓名 收货人地址 收货人电话 收货人邮编 订单总金额 订单产生日期 配货状态 订货人姓名 币种,0为人民币,1为美元 支付动作完成后返回到该url,支付结果以GET方式发送 订单数字指纹 由于采用HTML表单方式传递参数,就出现了消费者可以任意篡改页面信息的问题,为防止此类现象发生,我们需要对页面部分敏感信息作签名以保证其真实性和完整性。首信易支付平台向入驻商户提供了一个标准的签名程序源码,该程序提供签名功能,主功能函数为char* hmac (char* text, char* key),该函数有两个入口参数:
9、char* text和char* key。其中text是将表单中部分敏感信息拼串的结果,具体做法如下:当消费者在商户端生成最终订单的时候,将订单中的v_moneytype v_ymd v_amount v_rcvname v_oid v_mid v_url七个参数的value值拼成一个无间隔的字符串(char型,顺序不要改变)。而另一个入口参数key则是首信易支付与商户私下约定的密钥。该密钥由商户生成,建议为16个字符,字母数字的组合。并通知首信易支付相关人员。在更换密钥时,请按照:公司名、商户号、联系人、密钥的顺序发送到zhaoruifan。该密钥初始值为test,以下所用到的密钥均为此密钥
10、例如上例表单的拼串结果应为:01999072013.4588819990720-888-000001234888http:/domain/program该函数返回值即为我们所需的数字指纹,将其写入v_md5info字段即可。注:为了满足不同商户需要,首信易支付还提供以下几种快捷支付通道,相关支付通道CGI接口链接地址及说明:英文支付通道:(四种外卡)可使用如下CGI接口链接(form表单参数与前面相同):form name=form method=post action= 会员支付快捷通道:form name=form method=post action= 手机支付快捷通道:商户)支付完成
11、后页面转到商户时,从首信易支付返回的消息格式(注意,与后台接口程序文档第三部分定时发送方式使用的消息格式有区别)为:v_url?v_oid=19990720-商户号-000001234&v_pstatus=30&v_pstring=无效卡号&v_pmode=支付方式(字符串)&v_md5info=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4&v_amount=0.01&v_moneytype=0&v_md5money=56b2c3d345f6a1b2c3d4e766a1b2c323&v_sign=7e85042c517d4e42f77b0ef967e7a6f20f2ede9
12、ff6558c8309712ec7edddb69dc783a2019a48599cc81ada8397a03b3af0ae42789ac6bc2783a5084419d51b0f54749df0123d51b319cf5f8a3c4a4b886372463dd96f9922a8a1e88a0c663b0065b25f7c9ac29fc98478e665c079d57308c01780d3d8067bbb634c9dd3853c8e该消息格式详细解释如下:v_url是该笔订单提交时(接口文档第一部分)参数v_url 的值,即Capinfo返回到商户的接口地址。 其中, * 为商户发送的v_url
13、 1v_oid = 商户发送的v_oid定单编号;2v_pmode = 支付方式(字符串); 3v_pstatus = 1(已提交,对使用非实时银行卡进行扣款的订单); 20(支付成功,对使用实时银行卡进行扣款的订单); 30(支付失败,对使用实时银行卡进行扣款的订单); 4v_pstring 支付结果信息= 已提交(当v_pstatus=1时); 支付完成(当v_pstatus=20时); 失败原因(当v_pstatus=30时,字符串);5v_md5info =char* hmac_md5(char* text, char* key) char* text 拼串结果 char* key
14、对称密钥注:v_md5info校验四个参数,拼接字符串的顺序为:v_oid,v_pstatus,v_pstring和v_pmode 6v_amount订单实际支付金额 7v_moneytype 订单实际支付币种 8v_md5money=char* hmac_md5(char* text, char* key)char* text 拼串结果 char* key 对称密钥v_md5money效验两个参数,拼接字符串的顺序为:v_amount,v_moneytype9v_sign:商城数据签名,参与签名的数据(v_oid+v_pstatus+v_amount+v_moneytype)验证商城数据签名
15、Public1024.key为商城公钥) asp验证签名:set com=server.CreateObject(RSACOM.RSAMD5.1)source=v_oid & v_pstatus & v_amount & v_moneytype verifyStatus=com.PublicVerifyMD5(D:Public1024.key ,v_sign ,source ,len(source) (verifyStatus:0 验证成功) jsp验证签名:RSA_MD5 myRSA=new RSA_MD5(); String source=v_oid + v_pstatus + v_a
16、mount + v_moneytype;int verifyStatus = myRSA.PublicVerifyMD5(D:Public1024.key ,v_sign ,source);(verifyStatus:0 验证成功)关于验证参数的说明:首信易支付订单页面返回接口共有9个参数,其中v_oid,v_pstatus,v_pstring,v_pmode,v_amount,v_moneytype 这6个参数是订单支付相关的消息。v_md5info,v_md5money,v_sign 这3个参数是附加的验证消息。其中,v_sign 参数是用于首信易支付平台最新推出的非对称安全验证方式的指纹
17、结果。为了保持首信易支付平台的兼容性,所以保留了原来用于对称验证方式的两个验证值参数:v_md5info和v_md5money,这样原有商户就不必做任何改动,v_md5money中参加验证的参数均不含中文,如果在验证时遇到中文编码问题,可以通过验证这个指纹解决。首信易支付平台建议新入驻商户采用非对称的安全验证方式。这种验证方式也适用于后面的首信易支付订单支付结果后台返回接口,只是注意参加验证的参数有所不同。特在此说明,后面不再赘述。由于非对称安全验证方式使用时需要有安装证书文件等操作,如果是虚拟主机用户鉴于条件所限无法实现,则还可以使用原来md5验证方式。三、首信易支付订单支付结果后台返回接口
18、首信易支付商户) 用途:首信易支付向商户发送订单的支付结果,商户返回接收情况。 注:此接口以及后面的转账结果返回接口,需由商户入驻时提供,填写在初始单的“订单支付返回接口”一栏中,或者以公司名、商户号、联系人、两个接口的URL(请注明哪个接口)的形式发送到zhaoruifan。1、 首信易支付提交的FORM表单参数说明 首信易支付一次将返回一个或多个订单的支付结果,返回为多个订单结果时,我们将以订单组的形式发送,具体说明如下:对每一笔订单,首信易支付都实时地将支付结果发送给商户。如果某一笔订单未发送成功(如出现网络中断或该笔订单md5校验错)但已经成功支付,则此订单将随着下一次发送订单支付结
19、果时发送,如发送还不成功,则在当日重复发送。对于支付失败的订单只发送一次。在每次发送时,我们将以七个参数(v_count、v_oid、v_pmode、v_pstatus、v_pstring、v_amount、v_moneytype)表示订单相关内容,另外附加三个数字指纹字段(v_mac、v_md5money、v_sign)用于以上订单信息的校验。对于单笔订单,以上七个订单参数说明如下: 订单个数(v_count):本次发送的订单个数;(最少为1,最大为4) 订单编号组(v_oid):定义同商户提交待付款订单接口中的订单编号定义; 支付方式组(v_pmode):支付方式中文说明,如“中行长城信用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 首信易 支付 v43 接口 说明
