日期:2014-05-17  浏览次数:21878 次

如何进行19pay手机充值端口对接
小弟我才疏学浅,现在想做一个WinForm程序,对接到19pay上去,实现手机充值功能,
但19pay只提供了一些技术文档,可小弟弟看不懂, 不知从何下手,各位大哥帮我分析一下,并指点一二。


我发一段文档,如有意思协助小弟,我可以将整篇文档发给分析。



网上支付业务流程步骤说明:
1) 消费者登录代理商商城系统,选择话费充值产品并下单,代理商商城系统产生预定单信息;
2) 消费者确认支付后,代理商将代理商商城订单号、话费充值产品编号、代理商标识、等信息通过浏览器URL传到19pay代理平台;(参考接口2.3)
3) 19pay代理平台根据代理商发送的信息进行充值处理,并相应的在代理商账户中扣除充值金额;
4) 充值申请提交成功后,根据代理商商城提供的返回地址,将返回请求发送给代理商商城。
5) 代理商收到信息进行验证,为用户提供服务。

2.3 直冲请求 (请先做接口2.7,从此接口获得产品信息)
? 请求方式
代理商商城系统–>19pay代理平台
代理商商城系统的支付按钮通过HTTP协议链接到19pay代理平台的接口地址,并按照接口参数定义以post传送相关数据。

? 接口地址
测试地址:http://114.255.7.236:8080/directFill.do
(正试地址另行通知)
? 接口参数
参数 含义 长度 是否非空 备注
prodid 产品id 4 非空 三位数字
agentid 代理商id 200 非空 代理商在19pay代理平台的登录名
backurl 直冲请求返回url 128 非空(当returntype为2时可为空) 本接口处理完成后,19pay代理平台将重定向到该url。形式为:
http://www.myshop.com/result.jsp
returntype 返回类型 1 非空 1表示post返回 2表示返回XML信息
orderid 代理商订单号 30 非空 该订单号由代理商商城系统生成。orderid唯一确定一条订单。
mobilenum 充值手机号 11 非空 充值手机号
source 代理商来源 10 非空 代理商商城请填写esales
mark 预留字段 1000 空 预留字段,代理商系统返回时原样带回
verifystring 验证摘要串 100 非空 详见接后描述


? 验证方式
本接口采用MD5摘要对请求进行确认。验证失败的请求将不予处理,并返回失败信息。
代理商首先需要向19pay代理平台申请开通直冲功能,随后会得到加密串(merchantKey),并按照以下规则来构造验证摘要串(verifystring)。
http://59.108.112.184:8080/directFill.do
MD5摘要源串:
prodid=%s&agentid=%s&backurl=%s&returntype=%s 
&orderid=%s&mobilenum=%s&source=%s&mark=%s&merchantKey=%s


代理商以具体的参数值替代以上的%s,并保证顺序及每项的准确性。如果mark为空,则传空字符串。
得到验证摘要串(verifystring)后作为post数据的一部分发送给接口地址。
2.4直冲请求返回
? 请求方式
19pay代理平台–>代理商商城系统
19pay代理平台以HTTP Post的方式返回backurl,并按照接口参数定义post相关数据。

? 接口地址
backurl(该backurl由代理商商城系统在2.3接口中提供)

? 接口参数
参数 含义 是否非空 备注
prodid 话费充值产品编号 非空 本接口版本号:
2.00
orderid 代理商商城订单 非空 返回2.3的orderid
tranid 直冲接口平台订单号 只有在订单提交成功2.3接口返回0000时才会返回信息
resultno 直冲结果编码 非空 详见3.1描述
mark 预留字段 空 返回2.3的mark
verifystring 验证摘要串 可空 详见接后描述

当2.3中返回类型(returntype)为2时,返回类似如下信息:
<?xml version="1.0" encoding="GB2312" ?> 
<fill version="1.0">
<items>
  <item name="prodid" value="XXX" /> 
  <item name="orderid" value="DIRECTXXXXXXXXXXX" /> 
  <item name="tranid" value="" /> 
  <item name="resultno" value="0000" /> 
  <item name="mark" value="" /> 
  <item name="verifystring" value="192ae0099f46de1d71228a5fa00c2d2e" /> 
  </items>
  </fill>

? 验证方式
本接口采用MD5摘要对请求进行确认。代理商商城系统对于验证不通过的请求返回将不做处理。
19pay代理平台按照以下规则来构造验证摘要串(verifystring)。
MD5摘要源串:
prodid=%s&orderid=%s&tranid=%s&resultno=%s&mark=%s&merchantKey=%s
19pay代理平台将以具体的参数值替代以上的%s,并保证顺序及每项的准确性。如果mark为空,则传空字符串。
19pay代理平台得到验证摘要串(verifystring)后作为post数据的一部分发送给接口地址。
  代理商商城系统接到请求返回后将按照同样的规则组成MD5摘要源串,得到结果后与参数中的verifystring进行比对来决定下一步操作。

2.5 直冲请求(预查询模式)
该请求为预查询模式,先通过预查询(command=2)查询是否可下单,返回可下单后,在代理商商城对用户扣款后,将原有信息再次提交(command=1)
如果采用预查询模式,则不能先预查询然后用原有流程提交
? 请求方式
代理商商城系统–>19pay代理平台
代理商商城系统的支付按钮通过HTTP协议链接到19pay代理平台的接口地址,并按照接口参数定义以post传送相关数据。

? 接口地址
测试地址:http:// 114.255.7.236:8080 /preSearchFill.do
(正试地址另行通知)
? 接口参数
参数 含义 长度 是否非空 备注
prodid 产品id 4 非空 三位数字
agentid 代理商id 200 非空 代理商在19pay代理平台的登录名
backurl 直冲请求返回url 128 非空(当returntype为2时可为空) 本接口处理完成后,19pay代理平台将重定向到该url。形式为:
http://www.myshop.com/result.jsp
returntype 返回类型 1 非空 1表示post返回 2表示返回XML信息
orderid 代理商订单号 30 非空 该订单号由代理商商城系统生成。orderid唯一确定一条订单。
mobilenum 充值手机号 11 非空 充值手机号
source 代理商来源 10 非空 代理商商城请填