设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 76|回复: 7
打印 上一主题 下一主题

[网银]在线支付 返回写入参数怎样配置!!详细进

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-7 05:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提交 页面 参数:姓名:v_rcvname 地址:v_rcvaddr 冲值金额:v_amount
数据库 结构:表:chongzhi 列 姓名:name 冲值 金额:qian 此记录是查询 支付

怎样让 数据 写入 chongzhi 呢? 并加 name qian

-----------------
写入chongzhi后 还要写入 用户资料表 user
结构: 表:user 列 ,姓名:name 该用户总金额 :zongjin

该如何判断给哪个用户加钱呢?是根据返回值name 还是根据
rs.open"select * from user where name='"&session("user")&"'",conn,1,1

网银在线的官方 文件:
<!--#include file="MD5.asp"-->
<%
'**************************************** ' MD5密钥要跟订单提交页相同,如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥
' 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/
key = "123456789" ' 登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置”
' 建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了
'****************************************
' 取得返回参数值
v_oid=request("v_oid") ' 商户发送的v_oid定单编号
v_pmode=request("v_pmode") ' 支付方式(字符串)
v_pstatus=request("v_pstatus") ' 支付状态 20(支付成功);30(支付失败)
v_pstring=request("v_pstring") ' 支付结果信息 支付完成(当v_pstatus=20时);失败原因(当v_pstatus=30时);
v_amount=request("v_amount") ' 订单实际支付金额
v_moneytype=request("v_moneytype") ' 订单实际支付币种
remark1=request("remark1") ' 备注字段1
remark2=request("remark2") ' 备注字段2
v_md5str=request("v_md5str") ' 网银在线拼凑的Md5校验串

if request("v_md5str")="" then
response.Write("v_md5str:空值")
response.end
end if

'md5校验
text = v_oid&v_pstatus&v_amount&v_moneytype&key
md5text = Ucase(trim(md5(text))) '商户拼凑的Md5校验串
if md5text<>v_md5str then ' 网银在线拼凑的Md5校验串 与 商户拼凑的Md5校验串 进行对比
'对比失败表示信息非网银在线返回的信息
response.write("MD5 error")
else
'对比成功表示信息是网银在线返回的信息
if v_pstatus=20 then
'支付成功
'此处加入商户系统的逻辑处理(例如判断金额,判断支付状态,更新订单状态等等)......
end if
end if
%>





<!--
以下是打印出所有接收数据的结果,供编程人员参考
-->
<table width="93%" border="0">
<tr>
<td> <p><b><font color="#FF0000">提示:</font> 您网上在线支付情况反馈如下:</b><br>
<br>
此次交易编号: <%=v_oid%></p>
<p>
<%if v_pstatus=20 then
zhuangtai = "在线支付已经支付成功"
%>
在线支付已经支付成功
<%elseif v_pstatus=30 then
zhuangtai = "在线支付失败!"
%>
在线支付失败!
<%end if%>
</p>
<p>
支付代码号:<%=v_pstatus%>
<br>
<br>
在线支付结果:<%=v_pstring%>
</p>
<p>您所使用的卡为:<%=v_pmode%></p>
<p>金额:<%=v_amount%></p>
<p>币种:人民币</p>
</p></td>
</tr>
</table>
2#
 楼主| 发表于 2010-1-7 05:10:21 | 只看该作者
我自己写了一个 感觉不对:BuyLogOther为在哪里冲值

'''''''''''''''''''''开始写入数据库''''''''''''''''''''
set rs=server.createobject("adodb.recordset")
sql="select * from chongzhi where BuyLogOther='" & "用户网络银行充值:" & v_oid &"'"
rs.open sql,conn,1,3
if not (rs.bof and rs.eof) then Response.Redirect("cuowu.asp")
rs.close
sql="select * from user where name='"&name&"'"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
Response.Redirect("cuowu.asp")
else
name=rs("ID")
zongjin=rs("zongjin") + v_amount
rs("zongjin")=zongjin
rs.update
end if
rs.close
sql="select * from chongzhi where (BuyLogID is null)"
rs.open sql,conn,1,3
rs.addnew
rs("UserID")=UserID
rs("BuyLogSum")=v_amount
rs("BuyLogMoney")=Money
rs("BuyLogDate")=Date()
rs("BuyLogOther")="用户网络银行充值:" & v_oid
rs.update
rs.close
set rs=nothing
Response.Redirect("Default.asp")
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-7 05:10:24 | 只看该作者
name=rs("ID") //name 应该写为rs("name")吧
注意数据类型问题,数字相加最好前边用cdbl函数
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-7 05:10:27 | 只看该作者
在详细点的有不?

难道就没人帮忙?
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-7 05:10:30 | 只看该作者
你这个是 支付宝的
我要网银
回复 支持 反对

使用道具 举报

6#
发表于 2010-1-7 05:10:33 | 只看该作者
呵呵!你可以根据网银给的那几个参数来设定你的数据库啊!还有就是网银不是会传回一个数字吗,在那个说明文件里面已经写得很清楚了,你按照照做就行了,我觉得返回的值只是个参考关键还是要看钱是否到帐!!!
回复 支持 反对

使用道具 举报

7#
发表于 2010-1-7 05:10:37 | 只看该作者
曾经写过。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



<!--引入MDB加密文件,确保交易安全性-->
<!--#include file="md5.asp"-->
<%
Class ZFB_Buy
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'此方法对外。修饰为public
'方法名: GetGoodsInfos
'参数说明:
'Pro_Name: 商品名称
'Pro_Characterization: 商品描述
'Pro_Unit_Price: 商品单价
'Pro_ID: 商品的唯一编号
'Pro_number: 购买商品数量
'ordinary_fee: 平邮运费
'express_fee: 快递运费
'buyer_msg: 买家给卖家的留言
'buyer_Email: 买家Email
'buyer_name: 买家姓名
'buyer_address 买家地址
'buyer_zipcode: 买家邮编
'buyer_tell: 买家电话号码
'buyer_mobile: 买家手机号码
public Function GetGoodsInfos(Pro_Name,Pro_Characterization,Pro_Unit_Price,Pro_ID,Pro_number,ordinary_fee,express_fee,buyer_msg,buyer_Email,buyer_name,buyer_address,buyer_zipcode,buyer_tell,buyer_mobile)

t1 = ZFB_Interface_URL '支付接口
t2 = ZFB_Accounts '商户支付宝账户
t3 = ZFB_Check_Code '安全校验码
't4 = "" '支付宝按钮图片
't5 = "用支付宝支付,放心" '按钮悬停说明
s1 = ZFB_CMD_Command_Code 'cmd 命令码
s2 = DelStr(trim(Pro_Name)) 'subject 商品名称
s3 = Pro_Characterization 'body 商品描述
s4 = DelStr(trim(GetOrderNumber())) 'order_no 商户订单号
s5 = DelStr(trim(Pro_Unit_Price)) 'price 商品单价 0.01~50000.00
s6 = WebURL&"/pro_viewpro.asp?nid="&Pro_ID 'url 商品展示网址
s7 = "1" 'type 支付类型 1:商品购买2:服务购买3:网络拍卖4:捐赠
s8 = DelStr(trim(Pro_number)) 'number 购买数量
s9 = "" 'transport 发货方式 1:平邮2:快递3:虚拟物品
s10 = ordinary_fee 'ordinary_fee 平邮运费
s11 = express_fee 'express_fee 快递运费
s12 = "true" 'readonly 交易信息是否只读
s13 = DelStr(trim(buyer_msg)) 'buyer_msg 买家给卖家的留言
s14 = DelStr(trim(buyer_Email)) 'buyer_Email 买家Email
s15 = DelStr(trim(buyer_name)) 'buyer_name 买家姓名
s16 = DelStr(trim(buyer_address)) 'buyer_address 买家地址
s17 = DelStr(trim(buyer_zipcode)) 'buyer_zipcode 买家邮编
s18 = DelStr(trim(buyer_tell)) 'buyer_tell 买家电话号码
s19 = DelStr(trim(buyer_mobile)) 'buyer_mobile 买家手机号码
s20 = "2088002065360282" '友情ID,用来统计交易总金额,请误修改
'初始化各必要变量
INTERFACE_URL = t1+t2 '支付接口
sellerEmail = t2 '商户支付宝账户
keyCode = t3 '安全校验码
'imgsrc = t4 '支付宝按钮图片
'imgtitle = t5 '按钮悬停说明

str2CreateAc = "cmd" & s1 & "subject" & s2
str2CreateAc = str2CreateAc & "body" & s3
str2CreateAc = str2CreateAc & "order_no" & s4
str2CreateAc = str2CreateAc & "price" & s5
str2CreateAc = str2CreateAc & "url" & s6
str2CreateAc = str2CreateAc & "type" & s7
str2CreateAc = str2CreateAc & "number" & s8
str2CreateAc = str2CreateAc & "transport" & s9
str2CreateAc = str2CreateAc & "ordinary_fee" & s10
str2CreateAc = str2CreateAc & "express_fee" & s11
str2CreateAc = str2CreateAc & "readonly" & s12
str2CreateAc = str2CreateAc & "buyer_msg" & s13
str2CreateAc = str2CreateAc & "seller" & sellerEmail
str2CreateAc = str2CreateAc & "buyer" & s14
str2CreateAc = str2CreateAc & "buyer_name" & s15
str2CreateAc = str2CreateAc & "buyer_address" & s16
str2CreateAc = str2CreateAc & "buyer_zipcode" & s17
str2CreateAc = str2CreateAc & "buyer_tel" & s18
str2CreateAc = str2CreateAc & "buyer_mobile" & s19
str2CreateAc = str2CreateAc & "partner" & s20
str2CreateAc = str2CreateAc & keyCode

acCode = MD5(str2CreateAc)
itemURL = INTERFACE_URL & "?cmd=" & s1
itemURL = itemURL & "&subject=" & Server.HTMLEncode(s2)
itemURL = itemURL & "&body=" & Server.HTMLEncode(s3)
itemURL = itemURL & "&order_no=" & s4
itemURL = itemURL & "&price=" & s5
itemURL = itemURL & "&url=" & s6
itemURL = itemURL & "&type=" & s7
itemURL = itemURL & "&number=" & s8
itemURL = itemURL & "&transport=" & s9
itemURL = itemURL & "&ordinary_fee=" & s10
itemURL = itemURL & "&express_fee=" & s11
itemURL = itemURL & "&readonly=" & s12
itemURL = itemURL & "&buyer_msg=" & Server.HTMLEncode(s13)
itemURL = itemURL & "&buyer=" & Server.HTMLEncode(s14)
itemURL = itemURL & "&buyer_name=" & Server.HTMLEncode(s15)
itemURL = itemURL & "&buyer_address=" & Server.HTMLEncode(s16)
itemURL = itemURL & "&buyer_zipcode=" & s17
itemURL = itemURL & "&buyer_tel=" & s18
itemURL = itemURL & "&buyer_mobile=" & s19
itemURL = itemURL & "&partner=" & s20
itemURL = itemURL & "&ac=" & acCode
'返回值
GetGoodsInfos = itemURL
End Function
''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''
'私有方法DelStr
'调用方法 DelStr(值),防止SQL注入攻击
private Function DelStr(Str)
If IsNull(Str) Or IsEmpty(Str) Then
Str = ""
End If
DelStr = Replace(Str,";","")
DelStr = Replace(DelStr,"'","")
DelStr = Replace(DelStr,"&","")
DelStr = Replace(DelStr," ","")
DelStr = Replace(DelStr,"%20","")
DelStr = Replace(DelStr,"--","")
DelStr = Replace(DelStr,"==","")
DelStr = Replace(DelStr,"<","")
DelStr = Replace(DelStr,">","")
DelStr = Replace(DelStr,"%","")
DelStr = Replace(DelStr,"+","")
DelStr = Replace(DelStr,"顶级","DingJi")
End Function
''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''
'产生唯一的编号的私有方法GetOrderNumber
'返回一个唯一的编号
private function GetOrderNumber()
Randomize
RanNum=int(90000*rnd)+10000 '产生随即数
DIM N:N=right(year(now),len(year(now))-2)'取得年的后两为数
DIM Y:Y=month(now) '取得当前月
DIM R:R=day(now) '取得当天
Dim H:H=hour(now) '取得时钟
DIM M:M=minute(now) '取得分钟
DIM S:S=second(now) '取得秒中
IF LEN(Y)<2 THEN Y="0"&Y
IF LEN(R)<2 THEN R="0"&R
IF LEN(H)<2 THEN H="0"&H
IF LEN(M)<2 THEN M="0"&M
IF LEN(S)<2 THEN S="0"&S
GetOrderNumber=N&Y&R&H&M&S&RanNum '返回一个唯一的订单号
end function

End Class
%>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 23:01 , Processed in 0.112772 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表