Rppay 系统接口手册 1 引言 1.1 概述
ReapyPay 是一个基于网络的功能强大的国际信用卡在线支付平台。目前该产品已广泛 应
用于网络商家的B2C,B2B 业务之中,其快捷、安全的交易模式普遍被商家所接受,国内 绝大部分知名的电子商务网站都已使用了这套系统。 1.2 阅读对象
本文适合有一定计算机与Web 开发基础的技术人员阅读. 1.3 专业术语 商户:
是指当您在RealyPay 开通业务后,对您的标准称呼。 持卡人:
是指在您购物网站上购买商品的购物者。 掉单:
持卡人支付成功,但因为网络或客户浏览器问题导致商户未能收到RealyPay 返回的支付结 果
信息,即在RealyPay 处该交易已经完成,而在商户处该交易仍在交易中。 数字签名:
数字签名认证的目的是用来保证信息传输过程中信息的完整性和真实性以及提供信息发送 者身份的确认证。数字签名使得接收者能够核实发送者对报文的签名,发送者事后不能抵赖 对报文的签名,且接收者不能伪造对报文的签名。 2 准备集成
为确保集成工作的顺利完成,请在开始集成工作前确认以下内容: 2.1 检查您的硬件环境
您的硬件环境就具备以下条件: IntelPⅢ 500MHz 及更好的CPU 256MB 及更多的内存 2.2 检查您的软件环境
您的软件环境就具备以下条件:
MicrosoftNTplatform 或Unix/Linuxplatform 运行环境能够调用DLL 或Java 组件 2.3 检查您的网络环境
IIS4.0 以上,并打开https 协议使用的端口 至少拥有一个具有公共域名或IP 的Web 服务器 2.4 开通您的交易业务
请联系RealyPay 支付业务部门开通交易业务,开通后您会得到商户号、商户证书或签名组 件等信息。 3 开始集成
3.1 组织并提交购物信息
商户将购物信息组织成符合HTML 规范的Form 表单,通过该表单以POST 方式提交到 RealyPay 支付,提交地址请参阅4.2 节,该表单形式如下:
表单各字段说明:
字段标识必须长度备注与说明 product_no[1] Y 50 产品编号 product_name[1] Y 255 产品名称 price_unit[1] Y 18 产品价格 quantity[1] Y 4 产品数量
siteid Y 8 网站标识ID ,可以在RealyPay 后台获取到
key Y 16 商户秘钥,可以在RealyPay 后台获取到 order_sn Y 50 商户网站订单号 customername Y 50 持卡人姓名 address Y 255 持卡人送货地址 city Y 100 持卡人所在城市 state Y 100 持卡人所在省份 postcode Y 10 持卡人邮编 country Y 100 持卡人国家 email Y 100 持卡人Email tel Y 50 持卡人电话
billcustomername N 50 持卡人帐单名字 billaddress N 255 持卡人帐单地址 billcity N 100 持卡人帐单城市 billstate N 100 持卡人帐单省份 billpostcode N 10 持卡人帐单邮编 billcountry N 100 持卡人帐单国家 billphone N 50 持卡人帐单电话 ShippingFee Y 10 运费
currency Y 3 货币类型(详见表4)
returnUrl N 500 用于接收Realypay 返回数据的地址(显示页面,用 于接收返回数据)
verifyCode Y 36 用于验证数据是否被纂改 表1
付:verifyCode 的生成规则$verifyCode=md5($order_sn.siteid.$key); 其中的 key 可在RP 网站获取
该值会在支付结束后,返回用来效验数据是否被篡改 3.2.1 RPPAY 支付是如何返回支付信息的?
RealyPay 通过服务器点对点GET 的形式直接将返回信息发送给您的returnUrl 地址。 另外会在后台以POST 的形式发送数据到您的网站根目录下的rppay_check.php 3.2.2Realypay 支付会将哪些信息返回给您?
表单各字段说明: 字段标识备注与说明 Siteid 网站的id
Order_sn 商户网站的订单号 Total 订单的总金额
VerifyCode 订单的MD5 验证,与网站相同
Verified 在Realypay 支付结束后的订单状态(见表3) Transactionid RealyPay 支付系统中的系统编号 表2
返回状态各字段说明: approved 成功
declined 付款失败 refund 退款 unpaid 未付款
pending 交易处理中 error 支付出错 test approve 测试 canceled 付款取消 chargeback 拒付 fraud 欺诈 表3
货币类型 CNY 人民币 USD 美元 GBP 英镑 EUR 欧元 JPY 日元 AUD 澳元 CAD 加元 CHF 瑞郎 SGD 新加坡元 SUR 俄罗斯卢布 SEK 瑞典克朗 DKK 丹麦克朗 NOK 挪威克朗 NZD 新西兰元 KRW 韩元
3.2.3 在网站根目录下新建文件rppay_check.php,
用以隐式的接收更改订单状态,如:客户发生退单、拒付等操作时,支付接口会隐式调用该 页面,同步更新本地数据库订单状态。状态值参照上面列出的订单状态值列表。调用该文 件时, 以Post 形式传递参数。url 的格式如下:
http://www.xxx.com/rppay_check.php?_order_sn=100000024&_verifyCode=DF7A0AE133269F
3EE434CF6C90A005E3&_amount=3237.00&_verified=testapprove&_currency=USD _order_sn 订单id
_verifyCode 用订单id、网站siteid、网站密钥拼接,经过md5 加密后得到字符串 _amount 订单金额 _verified 订单状态 _currency 货币类型
3.3.3 在网站跟目录先新建文件rp_check.php
当用户的支付是master 卡的时候,方便rp 网站后台将订单状态回调个商户网站,说明如 下:
1、该地址请求的时候,会将transactionid(rp 交易号)request 传回给网站。 2、得到transactionid($_REQUEST['transactionid']),再去请求rp 的webserivice,webserivice
地址如下:http://check.realypay.com/ValidateOrder.asmx。 请求代码举个php 程序的例子如下:
$url= \"http://check.realypay.com/ValidateOrder.asmx?WSDL\"; $client = new nusoap_client($url, true); $param=array('cipherkey'=>
MODULE_PAYMENT_RPPAY_MIYAO,\"transactionid\"=>$_REQUEST['transactionid']);
$result = $client->call('Query', array('parameters' => $param), '', '', false, true,'document','encoded'); $re = $result['QueryResult'];
请求返回$re 的值是个字符串,需要自己去解析,格式如下:
&_siteid=88888888&_order_sn=128&_total=279.92&_shippingfee=5.00&_currency=USD&_ver
ified=declined
_siteid:rp 后台分配给网站的siteid _order_sn:网站订单号 _total:订单金额 _shippingfee:运费 _currency:支付币种
_verified:返回的订单状态,详细参考值见表3
3.3.4 如需在网站后台同步更新运单号,请如下操作:
1、在网站后台订单信息页面,修改订单状态的时候,请求如下地址:
http://send.realypay.com/payment/ReceiveOrderDeliveredStatus.cgi?order_sn=1212&comments=
1212&status=3&transactionid=2011315212&cipherkey=88880SF134ED 参数说明:
order_sn:网站订单id
Comments:运单号,需通过urlencode 传值 Status:修改的订单状态 Transactionid:rp 交易号 Cipherkey:网站密钥
该地址只需一般post 请求就可以,无返回值
注:只有在订单状态改为delivered的时候才会去请求,并且运单号不能为空,如果为空, rp后台将得不到运单号信息
因篇幅问题不能全部显示,请点此查看更多更全内容