如何进行19pay手机充值端口对接

foxwfb 2009-03-05 08:08:49
小弟我才疏学浅,现在想做一个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 非空 代理商商城请填写esales
command 交易码 1 非空 1:发货 2:预查询
mark 预留字段 1000 空 预留字段,代理商系统返回时原样带回
verifystring 验证摘要串 100 非空 详见接后描述


 验证方式
本接口采用MD5摘要对请求进行确认。验证失败的请求将不予处理,并返回失败信息。
代理商首先需要向19pay代理平台申请开通直冲功能,随后会得到加密串(merchantKey),并按照以下规则来构造验证摘要串(verifystring)。
MD5摘要源串:
prodid=%s&agentid=%s&backurl=%s&returntype=%s
&orderid=%s&mobilenum=%s&source=%s&command=%s &mark=%s&merchantKey=%s
代理商以具体的参数值替代以上的%s,并保证顺序及每项的准确性。如果mark为空,则传空字符串。
得到验证摘要串(verifystring)后作为post数据的一部分发送给接口地址。

2.6直冲请求返回(预查询模式)
 请求方式
19pay代理平台–>代理商商城系统
19pay代理平台以HTTP Post的方式返回backurl,并按照接口参数定义post相关数据。

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

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

当2.5中返回类型(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.7 话费充值产品查询
注::代理商商城可通过此接口实时得到话费充值产品信息列表,返回信息为XML格式。
 请求方式
代理商商城系统–>19pay代理平台
代理商商城系统以HTTP Post的方式请求19pay代理平台的接口地址,并按照接口参数定义传送数据。19pay代理平台将以xml方式返回查询结果。

 接口地址
测试地址 http:// 114.255.7.236:8080 /directProduct.do
(正试地址另行通知)


......
...全文
2015 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bao605424093 2012-10-06
  • 打赏
  • 举报
回复
19pay代理商平台的 手机充值源码 发我一份,急用。谢谢 我的邮箱:605424093@qq.com
solo0572 2010-06-28
  • 打赏
  • 举报
回复
找个代样例的不就完啦。19PAY的服务人员都找不到,电话都没有。还是去 久久数字平台 上申请个接口账户吧!
ttfadai 2009-11-26
  • 打赏
  • 举报
回复
同样的问题困扰
www89751 2009-10-28
  • 打赏
  • 举报
回复
谁做好了可以发给我一份忙?QQ:649156310 谢谢
tangshi129 2009-10-12
  • 打赏
  • 举报
回复
你好,能帮帮我吗?教教我
a6008 2009-08-23
  • 打赏
  • 举报
回复
本人已完成此平台接口的手机充值和点卡充值功能 QQ:291127102
yt8116 2009-06-18
  • 打赏
  • 举报
回复
本人已完成此平台接口的手机充值和点卡充值功能,有意者可联系QQ:47235236!常常不在线,可留言!!!
qq52913856 2009-06-17
  • 打赏
  • 举报
回复
找技术人!帮忙开发 19pay 开发 接口
有酎金的!! 会开发平台接口对接联系我。。我的QQ:52913856 手机:13707177765
wangyuanpi 2009-03-23
  • 打赏
  • 举报
回复
能教教我怎么做吗?谢谢你
wangyuanpi 2009-03-13
  • 打赏
  • 举报
回复
接口做好了?
foxwfb 2009-03-07
  • 打赏
  • 举报
回复
我自己做得差不多了,了解了,谢谢大家.
foxwfb 2009-03-06
  • 打赏
  • 举报
回复
接口地址
测试地址:http://114.255.7.236:8080/directFill.do

我把参数构建好,如何测试??我就是不明白这一点。

用webBrowser.Navigate()方法传递构建好的post数据??
mjjzg 2009-03-06
  • 打赏
  • 举报
回复
这样的东西还是自己动手一步一步的做比较好,完全去用口说也是达不到什么效果的,都太理论话,还是亲自实践一下....
aipeli 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 EveryCase 的回复:]
顶~~~~~~~~~~~~~~~~
[/Quote]
....
foxwfb 2009-03-06
  • 打赏
  • 举报
回复
http://59.108.112.184:8080/directFill.do?prodid=%s&orderid=%s&tranid=%s&resultno=%s&mark=%s&merchantKey=%s


最后是这样来发送请求??
EveryCase 2009-03-06
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~~
oyljerry 2009-03-05
  • 打赏
  • 举报
回复
主要是socket 构建HTTP请求等,然后拼接好完整的参数等,就可以发送http请求了...
老规矩,先看本节效果图我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。核心代码就下面这些一,创建一个云开发小程序关于如何创建云开发小程序,这里我就不再做具体讲解。不知道怎么创建云开发小程序的同学,可以去翻看我之前的文章,或者看下我录制的视频:https://edu.csdn.net/course/play/9604/204528创建云开发小程序有几点注意的1,一定不要忘记在app.js里初始化云开发环境。2,创建完云函数后,一定要记得上传二, 创建支付的云函数1,创建云函数pay三,引入三方依赖tenpay我们这里引入三方依赖的目的,是创建我们支付时需要的一些参数。我们安装依赖是使用里npm 而npm必须安装node,关于如何安装node,我这里不做讲解,百度一下,网上一大堆。1,首先右键pay,然后选择在终端中打开2,我们使用npm来安装这个依赖。在命令行里执行 npm i tenpay安装完成后,我们的pay云函数会多出一个package.json 文件到这里我们的tenpay依赖就安装好了。四,编写云函数pay完整代码如下//云开发实现支付 const cloud = require('wx-server-sdk')cloud.init() //1,引入支付的三方依赖 const tenpay = require('tenpay'); //2,配置支付信息 const config = ;exports.main = async(event, context) => 一定要注意把appid,mchid,partnerKey换成你自己的。到这里我们获取小程序支付所需参数的云函数代码就编写完成了。不要忘记上传这个云函数。出现下图就代表上传成功五,写一个简单的页面,用来提交订单,调用pay云函数。这个页面很简单,1,自己随便编写一个订单号(这个订单号要大于6位)2,自己随便填写一个订单价(单位是分)3,点击按钮,调用pay云函数。获取支付所需参数。下图是官方支付api所需要的一些必须参数。下图是我们调用pay云函数获取的参数,和上图所需要的是不是一样。六,调用wx.requestPayment实现支付下图是官方的示例代码这里不在做具体讲解了,完整的可以看视频。实现效果1,调起支付键盘2,支付完成3,log日志,可以看出不同支付状态的回调上图是支付成功的回调,我们可以在支付成功回调时,改变订单支付状态。下图是支付失败的回调,下图是支付完成的状态。到这里我们就轻松的实现了微信小程序的支付功能了。是不是很简单啊,完整的讲解可以看视频。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧