【Jsp精品源码栏目提醒】:网学会员鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“[精品WORD]首信易支付v43接口说明 - 市场营销”一文,供大家参考学习
首信易支付(v4.3)接口说明 (首信易支付商户后台管理系统 http://pay.beijing.com.cn)首信易支付流程及功能简要介绍 首信易支付网上支付主要流程大致分为商户交易订单提交过程和银行订单确认这两个部分。
首先,当消费者在商户处完成购物过程,在商户端服务器形成最终订单(订单参数格式见文档第一部分“商户提交待付款订单接口”说明)且消费者选择首信易支付方式时,该接口程序将消费者订单中有关支付的信息引导到首信易支付平台,消费者在该平台选择银行进行网上支付交易。
当交易完成后,首信易支付平台可以通过两种方式通知商户银行对该笔订单的确认消息,商户根据实际业务需要选择这两种方式(其中任一种或者全部)编写相应的程序来接收银行返回的相关支付确认参数,通过对参数的判断来进行后续的业务操作。
1. 前台页面链接方式:这种方式接收的参数格式见文档第二部分“首信易支付订单支付结 果页面返回接口”说明,是将此次支付订单的交易结果(参数)以页面连接的形式发送 给商户。
这里的前台指这个参数传递过程对持卡消费者是可见的。
这种方式的特点是:返回参数的实时性好。
但有个别几种支付方式不支持这种方式,有 诸如网络中断或者持卡消费者不按要求操作等情况出现时,这种方式会有漏单(银行支 付确认消息商户收不到)的现象。
一旦出现漏单的情况,商户只能通过后台接口程序方 式接收银行订单支付确认消息,或者登录到首信易支付商户后台管理系统查询确认。
注意:这种方式接收程序的地址由商户在提交订单时参数 v_url 的值来指定,无需事先 通知首信易支付平台,如有变更只需要在提交订单参数时修改 v_url 的值即可。
2. 后台接口程序方式:这种方式接收的参数格式见文档第三部分“首信易支付订单支付结 果后台返回接口”说明,是由首信易支付平台转发银行支付确认信息。
这种方式是首信 易支付平台服务器与商户服务器之间进行通信的,对于持卡消费者是不可见的。
这种方式的特点是:支持平台上所有的支付方式,而且在与商户的通信过程中如有网络 故障,此方式支持自动重发功能(在首次发送的 24 小时内)。
注意:这种方式接收程序的地址需要由商户来确定,在商户号开通时所填写的初始单中, 填写在“订单支付确认返回地址”一栏,并由首信易支付平台管理员按照初始单内容进 行开通。
开通后如有修改,需要事先通知管理员确认修改。
最后,首信易支付将根据交易金额通知银行转帐。
通常情况下,首信易支付结算中心会在周一、周四进行转帐工作,但需要满足本地商户本次转帐金额达到两百元人民币、外埠商户本次转帐金额达到六百元人民币的条件。
如果不满足上述金额则累计到下次转帐时一起完成。
在一旦转帐成功,将立即通知商户转帐结果,通知接口的参数格式为文档第四部分“首信易支付通知商户转帐结果接口”说明。
此接口地址由商户确认,填写在初始单中“转帐确认通知接口”一栏中。
商户开通后,如果需要更改也要事先通知管理员确认后修改。
注意:通知商户转帐过程与网上支付交易是两个相对独立的过程,转帐工作是由首信易支付结算中心工作人员线下完成的,在通知银行进行转帐工作后,会通过“首信易支付通知商户转帐结果接口”将本次转帐的所有订单号发给商户。
由于这个接口发送的信息只是起到通知作用,不会影响商户的实际转帐工作。
因此商户可以根据自己的实际需要选择是否使用这个接口。
(本接口可选) 各接口的具体格式如下:一、商户提交待付款订单接口(商户==gtgt首信易支付) 用途:用来接收商户发来的订单信息 1、 CGI 程序接口 ltform methodpost actionquothttp://pay.beijing.com.cn/prs/user_payment.checkitquotgt 2、 FORM 表单参数说明 1. 商户编号v_mid 说明:不可为空值,以初始单上所填商户编号为准。
2. 订单编号v_oid 说明:不可为空值,首信易支付订单编号格式统一为: 订单生成日期yyyymmdd-商户编号-商户流水号 例如:19990720-888-12345。
商户流水号为数字,每日内不重复即可。
注:订单编号所有字符总和不可超过 64 位,否则首信易支付平台拒绝接受。
3. 收货人姓名v_rcvname 说明:不可为空值,统一用商户编号的值代替。
4. 收货人地址v_rcvaddr 说明:不可为空值,总长不超过 128 个字符。
5. 收货人电话v_rcvtel 说明:不可为空值,总长不超过 32 个字符。
6. 收货人邮政编码v_rcvpost 说明:不可为空值,总长不超过 10 个字符。
7. 订单总金额v_amount 说明:不可为空值,单位:元,小数点后保留两位,如 13.45 8. 订单产生日期v_ymd 说明:不可为空值,长度为 8 位,格式为 yyyymmdd 9. 配货状态v_orderstatus 说明:商户配货状态,0 为未配齐,1 为已配齐 10.订货人姓名v_ordername 说明:总长不超过 64 个字符 11.支付币种v_moneytype 说明:0 为人民币,1 为美元 12.返回商户页面地址v_url 说明:为消费者完成购物后返回的商户页面,此地址为页面连接方式的返回地址,在此地址放置接收程序用于接收银行返回的支付确认消息 (参数格式参照文档第二部分首信易支付订单支付结果页面返回接口) 。
URL 参数是以 http://开头的完整 URL 地址。
13.订单数字指纹v_md5info 详情见 md5 说明 注:以上参数值中不能包含以下特殊字符’”ampltgt 3、示例(注:此例商户号 888 应改为您的商户号) ltform nameform methodpost actionquothttp://pay.beijing.com.cn/prs/user_payment.checkitquotgt ltinput typehidden namev_mid valuequot888quotgt 商户编号 ltinput typehidden namev_oid valuequot19990720-888-000001234quotgt 订单编号 ltinput typehidden namev_rcvname valuequot888quotgt 收货人姓名 ltinput typehidden namev_rcvaddr valuequot北京海淀quotgt 收货人地址 ltinput typehidden namev_rcvtel valuequot68475566quotgt 收货人电话 ltinput typehidden namev_rcvpost valuequot100036quotgt 收货人邮编 ltinput typehidden namev_amount valuequot13.45quotgt 订单总金额 ltinput typehidden namev_ymd valuequot19990720quotgt 订单产生日期 ltinput typehidden namev_orderstatus valuequot0quotgt 配货状态 ltinput typehidden namev_ordername valuequot李四quotgt 订货人姓名 ltinput typehidden namev_moneytype valuequot0quotgt 币种0 为人民币1 为美元 ltinput typehidden namev_url valuequothttp://domain/programquotgt 支付动作完成后返回到该 url,支付结果以 GET 方式发送 ltinput typehidden namev_md5info valuequot1630dc083d70a1e8af60f49c143a7b95quotgt 订单数字指纹 ltimg srcquot../path/../首信易支付.gifquot widthquot150quot heightquot30quot onClickquotdocument.form.submitgtquot lt/formgt 由于采用 HTML 表单方式传递参数,就出现了消费者可以任意篡改页面信息的问题,为防止此类现象发生,我们需要对页面部分敏感信息作签名以保证其真实性和完整性。
首信易支付平台向入驻商户提供了一个标准的签名程序
源码, 该程序提供签名功能, 主功能函数为 char hmac char text char key,该函数有两个入口参数:char text 和 charkey。
其中 text 是将表单中部分敏感信息拼串的结果,具体做法如下: 当消费者在商户端生成最终订单的时候,将订单中的 v_moneytype v_ymd v_amountv_rcvname v_oid v_mid v_url 七个参数的 value 值拼成一个无间隔的字符串char 型,顺序不要改变。
而另一个入口参数 key 则是首信易支付与商户私下约定的密钥。
该密钥由商户生成,建议为 16 个字符,字母数字的组合。
并通知首信易支付相关人员。
在更换密钥时,请按照:公司名、商户号、联系人、密钥的顺序发送到 zhaoruifanpayeasenet.com。
该密钥初始值为 test,以下所用到的密钥均为此密钥。
例如上例表单的拼串结果应为: 01999072013.4588819990720-888-000001234888http://domain/program 该函数返回值即为我们所需的数字指纹,将其写入 v_md5info 字段即可。
注:为了满足不同商户需要,首信易支付还提供以下几种快捷支付通道,相关支付通道 CGI接口链接地址及说明: (四种外卡)可使用如下 CGI 接口链接(form 表单参数与前面相同) 英文支付通道: :ltform nameform methodpost actionquothttp://pay.beijing.com.cn/prs/e_user_payment.checkitquotgt 会员支付快捷通道:ltform nameform methodpost actionquothttp://pay.beijing.com.cn/customer/gb/pay_member.jspquotgt 手机支付快捷通道:ltform nameform methodpost actionquothttp://pay.beijing.com.cn/customer/gb/pay_mobile.jspquotgt 说明:以上链接地址所提交的 form 表单参数格式与前面的要求相同,只是进入相关的专用支付通道,不包含其它的支付方式。
各种支付通道的图片链接资料见(附录),此图片资料可以向首信易支付的市场及客服人员索取。
二、首信易支付订单支付结果页面返回接口(首信易支付==gtgt商户) 支付完成后页面转到商户时,从首信易支付返回的消息格式(注意,与后台接口程序文档第三部分定时发送方式使用的消息格式有区别)为:v_urlv_oid19990720-商户号-000001234ampv_pstatus30ampv_pstring无效卡号 ampv_pmode支付方式字符串 ampv_md5infoa1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4ampv_amount0.01 ampv_moneytype0ampv_md5money56b2c3d345f6a1b2c3d4e766a1b2c323 ampv_sign7e85042c517d4e42f77b0ef967e7a6f20f2ede9ff6558c8309712ec7edddb69dc783a2019a48599cc81ada8397a03b3af0ae42789ac6bc2783a5084419d51b0f54749df0123d51b319cf5f8a3c4a4b886372463dd96f9922a8a1e88a0c663b0065b25f7c9ac29fc98478e665c079d57308c01780d3d8067bbb634c9dd3853c8e 该消息格式详细解释如下: v_url 是该笔订单提交时(接口文档第一部分)参数 v_url 的值,即 Capinfo 返 回到商户的接口地址。
ltform methodget actionquotquot target_selfgt ltinput typequothiddenquot namequotv_oidquot valuequotquotgt ltinput typequothiddenquot namequotv_pstatusquot valuequotquotgt ltinput typequothiddenquot namequotv_pstringquot valuequotquotgt ltinput typequothiddenquot namequotv_pmodequot valuequotquotgt ltinput typequothiddenquot namequotv_md5infoquot valuequotquotgt ltinput typequothiddenquot namequotv_amountquot valuequotquotgt ltinput typequothiddenquot namequotv_moneytypequot valuequotquotgt ltinput typequothiddenquot namequotv_md5moneyquot valuequotquotgt ltinput typequothiddenquot namequot v_sign quot valuequotquotgt lt/formgt 其中, 为商户发送的 v_url; 1.v_oid 商户发送的 v_oid 定单编号; 2.v_pmode 支付方式(字符串) ; 3.v_pstatus 1(已提交,对使用非实时银行卡进行扣款的订单) ; 20(支付成功,对使用实时银行卡进行扣款的订单) ; 30(支付失败,对使用实时银行卡进行扣款的订单) ; 4.v_pstring 支付结果信息 已提交(当 v_pstatus1 时) ; 支付完成(当 v_pstatus20 时); 失败原因(当 v_pstatus30 时字符串); 5.v_md5info char hmac_md5char text char key char text 拼串结果 char key 对称密钥注:v_md5info 校验四个参数,拼接字符串的顺序为:v_oid,v_pstatus,v_pstring 和 v_pmode 6.v_amount 订单实际支付金额 7.v_moneytype 订单实际支付币种 8.v_md5moneychar hmac_md5char text char key char text 拼串结果 char key 对称密钥 v_md5money 效验两个参数,拼接字符串的顺序为:v_amount,v_moneytype 9.v_sign:商城数据签名,参与签名的数据(v_oidv_pstatusv_amountv_moneytype) 验证商城数据签名:(Public1024.key 为商城公钥) asp 验证签名: set comserver.CreateObjectquotRSACOM.RSAMD5.1quot sourcev_oid amp v_pstatus amp v_amount amp v_moneytype verifyStatuscom.PublicVerifyMD5quotD:Public1024.keyquot v_sign source lensou rce verifyStatus:0 验证成功
jsp 验证签名: RSA_MD5 myRSAnew RSA_MD5 String sourcev_oid v_pstatus v_amount v_moneytype int verifyStatus myRSA.PublicVerifyMD5quotD:Public1024.keyquot 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 参数是用于首信易支付平台最新推出的非对称安全验证方式的指纹结果。
为了保持首信易支付平台的兼容性, 所以保留了原来用于对称验证方式的两个验证值参数:v_md5info 和 v_md5money,这样原有商户就不必做任何改动,v_md5money 中参加验证的参数均不含中文,如果在验证时遇到中文编码问题,可以通过验证这个指纹解决。
首信易支付平台建议新入驻商户采用非对称的安全验证方式。
这种验证方式也适用于后面的首信易支付订单支付结果后台返回接口,只是注意参加验证的参数有所不同。
特在此说明,后面不再赘述。
由于非对称安全验证方式使用时需要有安装证书文件等操作,如果是虚拟主机用户鉴于条件所限无法实现,则还可以使用原来 md5 验证方式。
三、首信易支付订单支付结果后台返回接口(首信易支付==gtgt商户) 用途:首信易支付向商户发送订单的支付结果,商户返回接收情况。
注:此接口以及后面的转账结果返回接口,需由商户入驻时提供,填写在初始单的“订单支付返回接口”一栏中,或者以公司名、商户号、联系人、两个接口的 URL(请注明哪个接口)的形式发送到 zhaoruifanpayeasenet.com。
1、 首信易支付提交的 FORM 表单参数说明 首信易支付一次将返回一个或多个订单的支付结果,返回为多个订单结果时,我们将以订单组的形式发送,具体说明如下: 对每一笔订单, 首信易支付都实时地将支付结果发送给商户。
如果某一笔订单未发送成功(如出现网络中断或该笔订单 md5 校验错)但已经成功支付,则此订单将随着下一次发送订单支付结果时发送,如发送还不成功,则在当日重复发送。
对于支付失败的订单只发送一次。
在每次发送时, 我们将以七个参数(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):支付方式中文说明,如“中行长城信用卡” 。
支付状态组(v_pstatus):支付结果,0→待处理(支付结果未确定) ; 1支付完成; 3支付被拒绝; 支付结果说明(v_pstring):对支付结果的说明,成功时(v_pstatus1)为“支付成功”,支付被拒绝时(v_pstatus3)为失败原因。
订单支付金额v_amount:订单实际支付金额 订单支付币种v_moneytype:订单实际支付币种v_sign: 商城数据签名, 参与签名的数据(v_oidv_pstatusv_amountv_moneytypev_count) 以 对于批量订单的发送, v_oid 字段为例, v_oid1 表示本次发送的第一笔订单, v_oid2表示本次发送的第二笔订单,依此类推,组成 v_oid 字段,中间以“_”组合分割,举例如下:v_oidv_oid1_v_oid2_v_oid3_v_oid4_…………。
同理,v_pmode 字段表示为:v_pmodev_pmode1_v_pmode2_v_pmode3_v_pmode4_…………,v_pstatus 字段表 示 为 : v_pstatusv_pstatus1_v_pstatus2_v_pstatus3_v_pstatus4_… ,v_pstring 字段表示为:v_pstringv_pstring1_v_pstring2_v_pstring3_……v_amount 字段表示为:v_amountv_amount1_v_amount2_v_amount3_……v_moneytype 字段表示为:v_moneytypev_moneytype1_v_moneytype2_……。
v_sign: 商城数据签名, 参与签名的数据(v_oidv_pstatusv_amountv_moneytypev_count) 数字指纹(v_mac):防篡改信息,v_machmac_md5text key;其中 text 是表单中各项的 value 按如下顺序拼串的结果:v_oidv_pmodev_pstatusv_pstringv_count, key为双方约定的密钥。
例如一次发送两笔订单: 20001124-888-test002_20001124-888-test003 招商银行一网通_招商银行一网通3_1 支付被拒绝_支付完成 2 数字指纹(v_md5money) :防篡改信息,v_md5moneyhmac_md5text key;其中 text是表单中各项的 value 按如下顺序拼串的结果:v_amount v_moneytype,key 为双方约定的密钥。
验证商城数据签名(v_sign):(Public1024.key 为商城公钥) asp 验证签名: set comserver.CreateObjectquotRSACOM.RSAMD5.1quot sourcev_oid amp v_pstatus amp v_amount amp v_moneytype amp v_countverifyStatuscom.PublicVerifyMD5quotD:Public1024.keyquot v_sign source lensource verifyStatus:0 验证成功
jsp 验证签名: RSA_MD5 myRSAnew RSA_MD5 String sourcev_oid v_pstatus v_amount v_moneytype v_count int verifyStatus myRSA.PublicVerifyMD5quotD:Public1024.keyquot v_sign source verifyStatus:0 验证成功2、商户返回消息当商户收到上述消息后,返回消息定义如下:“sent”,表示成功收到支付结果信息。
“error” ,表示接收消息发生错误,如 md5 校验错。
注:返回信息不要有任何 HTML 代码或其它符号。
3、例如,在 ASP 中的参考代码lt ’ 获取参数 v_countrequestquotv_countquot v_oidrequestquotv_oidquot v_pmoderequestquotv_pmodequot v_pstatusrequestquotv_pstatusquot v_pstringrequestquotv_pstringquot v_macrequestquotv_macquot v_signrequest“v_sign” ’ 解析参数 a_oidsplitv_oidquot_quot a_pmodesplitv_pmodequot_quot a_pstatussplitv_pstatusquot_quot a_pstringsplitv_pstringquot_quot ’ md5 校验 dim mdfff set mdserver.CreateObject quotmd5_VB.md5classquot fffmd.hmacv_oidampv_pmodeampv_pstatusampv_pstringampv_countquottestquot ’ 按 md5 校验情况输出结果 if fffltgtv_mac then response.write quoterrorquot else response.write quotreceivedquot ’ 或 response.write quotsentquot,依据商品物流特征决定。
’ 操作数据库 (略) …… end ifgt ’ RSA 校验过程请参考文档第五部分中关于 RSA 的使用。
四、首信易支付通知商户转帐结果接口(首信易支付==gtgt商户) 用途:首信易支付将订单转帐结果通知商户。
(该接口是否使用可选) 1、 首信易支付提交的 FORM 表单参数说明 订单编号组(v_oid):定义同首信易支付订单支付结果返回接口中的订单编号定义; 形式如下:v_oidv_oid1_v_oid2_v_oid3_v_oid4_…………。
转帐结果(v_virement) :1转帐成功; (一批订单无论多少只返回一个 1。
) .
上一篇:
【精品】第13章
下一篇:
加强公路工程施工技术管理工作的措施