<form id="BaoMingForm" onsubmit="return ChkForm()" method="post" name="BaoMingForm" action="GuestBookaspaction=BaoMingForm">
action 就是 要跳转的页面, 网站程序都是已经放在服务器空间里面的,, 所以只需跳转页面即可
一般处理方式:
更换新的DNS服务器,或者等待出现故障的DNS服务器工作正常。有时没有提示,只说是无法连接到服务器。如果DNS服务器出现故障,一部分网页能正常打开,另一部分网页不能正常打开,出现此种情况的话,可以修改你的DNS服务器,如果有两个DNS服务器,你可以把首选DNS服务器和备用DNS服务器数据调换一下试试看。右击“网上邻居”→属性→右击本地连接→属性→Internet协议(TIC/IP)→属性→选择自动获取DNS服务器(这是最佳选择)。也可以自己设置DNS服务器数据。设置了IP地址以及子网掩码的话这里也可以保持空白不填写。当然如果你能准确知道你们当地的DNS数据最好填写进去。
特殊技巧参考:
方法一:开始→运行→cmd→regsvr32actxprxydll→确定→提示→actxprxydll中DllRegisterServer成功→确定。然后再次→运行→regsvr32shdocvwdll→确定。
方法二:修复TCP/IP网络连接:开始→运行→cmd→输入→netshintipreset→命令后会回车→ipconfig/flushdns来重建本地DNS缓存→重新启动计算机后IE与网络连接已修复。
方法三:HOSTS文件被修改文件位置C:WINDOWSsystem32driversetc把hosts用记事本打开,内容清空,只保留127001localhost然后看下面:
第一步:
打开“运行”输入—〉cmd—〉回车
然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了(下面是要运行的代码):
for%1in(%windir%system32dll)doregsvr32exe/s%1
完成后重新启动,然后看下面:
快速修复浏览器方案(请活学活用以下方法——根据具体情况决定做哪些)
1、打开浏览器,点“工具”→“管理加载项”那里禁用所有可疑插件,或者你能准确知道没问题的保留。然后→工具→INTERNET选项→常规页面→删除cookies→删除文件→钩选删除所有脱机内容→确定→设置使用的磁盘空间为:8MB或以下(我自己使用1MB)→确定→清除历史纪录→网页保存在历史记录中的天数:3以下→应用确定(我自己使用的设置是0天)。
2、还原浏览器高级设置默认值:工具→INTERNET选项→高级→还原默认设置。
3、恢复默认浏览器的方法“工具”→Internet选项→程序→最下面有个“检查InternetExplorer是否为默认的浏览器”把前面的钩选上,确定。
4、设置主页:“工具”→Internet选项→常规→可以更改主页地址→键入你喜欢的常用网址→应用。
5、如果浏览器中毒就使用卡卡助手40版本修复,然后做插件免疫:全部钩选→免疫。然后→全部去掉钩选→找到“必备”一项,把能用到的插件重新钩选→取消免疫。能用到的就是FLASH和几种播放器的,其余的不要取消免疫。
配置开发者信息「私钥」And「App_id」
/ 配置信息 /// 支付宝分配给开发者的应用ID
$app_id='';
// 开发者私钥,为这里填入方便,去头、去尾、去换行 字符串私钥,私钥处理放在签名方法内。
$private_key='';
// 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2
$sign_type='RSA2';
/ 配置信息 /
2组装部分请求参数:根据接口文档组装参数 app_id、method、format、timestamp、charset、version、notify_url、sign_type
/ 组装请求参数部分start /// 支付宝分配给开发者的应用ID
$params['app_id'] = $app_id;
// 接口名称
$params['method'] = 'alipaytradeapppay';
// 仅支持JSON
$params['format'] = 'json';
// 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
$params['timestamp'] = date("Y-m-d H:i:s");
// 请求使用的编码格式,如utf-8,gbk,gb2312等
$params['charset'] = 'UTF-8';
// 调用的接口版本,固定为:10
$params['version'] = '10';
// 支付宝服务器主动通知商户服务器里指定的页面 /
3组装业务参数json格式,并填充在$params数组中
/ 组装业务参数json /// 对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
$bizcontent['body'] = '非sdk原生php服务端生成请求订单';
// 商品的标题/交易标题/订单标题/订单关键字等。
$bizcontent['subject'] = 'php代码示例';
/ 生成随机数作为外部订单号start /
$date=date("YmdHis");
$arr=range(1000,9999);
shuffle($arr);
$out_trade_no=$date$arr[0];
/ 生成随机数作为外部订单号end /
// 商户网站唯一订单号
$bizcontent['out_trade_no'] = $out_trade_no;
// 设置未付款支付宝交易的超时时间,一旦超时,该笔交易就会自动被关闭。当用户进入支付宝收银台页面(不包括登录页面),会触发即刻创建支付宝交易,此时开始计时。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 15h,可转换为 90m。
$bizcontent['timeout_express']='10m';
// 订单总金额,单位为元,精确到小数点后两位,取值范围[001,100000000]
$bizcontent['total_amount'] = '001';
// 销售产品码,商家和支付宝签约的产品码
$bizcontent['product_code'] = 'QUICK_MSECURITY_PAY';
// 商品主类型:0—虚拟类商品,1—实物类商品 注:虚拟类商品不支持使用花呗渠道
$bizcontent['goods_type'] = '0';
// 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝
$bizcontent['passback_params']='spicy%3d%e8%87%aa%e5%ae%9a%e4%b9%89%e5%8f%82%e6%95%b01%26custom%3d%e8%87%aa%e5%ae%9a%e4%b9%89%e5%8f%82%e6%95%b02';
$biz_content=json_encode($bizcontent,JSON_UNESCAPED_UNICODE);
/ 组装业务参数json /
// 将业务参数填充在请求参数内
$params['biz_content'] = $biz_content;
4排序签名得到sign,并填充在$params数组中「签名方法请往下翻」
// 排序ksort($params);
// 调用签名方法得到sign填入请求参数
$params['sign'] = sign($params, $params['sign_type'], $private_key);
5将参数urlencode输出查看,打印出来的参数可以直接放在客户端使用
// htmlspecialchars是为防止浏览器将参数中的「×」和「¬」转义echo htmlspecialchars());
工具方法:签名方法和检查是否为空方法
/签名函数
@param array $params 请求参数数组
@param string $signType 签名方式
@param string $private_key 为了方便只要填一行字符串
@return string 返回类型
/
function sign($params,$signType,$private_key){
$stringToBeSigned = "";
$i = 0;
// 将数组使用&符号拼接
foreach ($params as $k => $v) {
if (false === checkEmpty($v) && "@" != substr($v, 0, 1)) {
if ($i == 0) {
$stringToBeSigned = "$k" "=" "$v";
} else {
$stringToBeSigned = "&" "$k" "=" "$v";
}
$i++;
}
}
unset ($k, $v);
// 私钥处理
$res = "-----BEGIN RSA PRIVATE KEY-----"PHP_EOLwordwrap($private_key, 64, PHP_EOL, true)PHP_EOL"-----END RSA PRIVATE KEY-----";
($res) or die('您使用的私钥格式错误,请检查RSA私钥配置');
//
if ("RSA2" == $signType) {
openssl_sign($stringToBeSigned, $sign, $res, OPENSSL_ALGO_SHA256);
} else {
openssl_sign($stringToBeSigned, $sign, $res);
}
return base64_encode($sign);
}
/
检查是否为空
@param string $value 请求参数数组
@return bool 返回类型
/
function checkEmpty($value) {
if (!isset($value))
return true;
if ($value === null)
return true;
if (trim($value) === "")
return true;
return false;
}在做java版本的支付宝接口的时候,最初是遇到了这样的问题,就是说,在直接的扫码支付,或者是直接的登录账号支付,是没有问题的,
但是,在这样的一种情况下是出现了一个问题,
我web端调用支付宝接口进行支付,一般都是支付成功之后,获得支付成功信息,然后同时去更改我本地订单状态(已付款)。
但是有一种情况是这样的:
调用支付宝接口,你输入账号密码之后, 在支付宝最后一步你不去点确认付款。直接退出(相当于你没有付款)。
然后,你用自己的手机支付宝客户端打开,你会看到有一个未付款的订单(也就是刚才你没付款但生成的订单)~这个时候 如果你去付款了,付款成功之后,就不可能调到我的web端呀?这样我就不能更改我本地的订单状态了。
想问下,大家遇到这种情况是怎么处理的?
有人说,每10秒钟通过订单号去支付宝查询并得到该订单状态。这种方法貌似可以,但是我百度了半天没有见到如何 根据订单号去查询订单状态啊!!! 支付宝的接口我有(Danbao担保)。不太会用。
希望大神给予指点!!!在线坐等,感激万分!!!
这个问题是来自一位博友,最开始也是没有意识到什么问题,为什么是收到钱了,但是却是没有调用自己的逻辑代码,
在看到了这位博友的问题之后,才是发现了自己的问题所在,所以在这里感谢一下,
然后是想说的是,知道了是什么问题之后,然后就是专注于解决这个问题,在考虑了一上午之后还是不明白这个异步通知是怎么的接收到,然后是在一个偶然是看见了,一个提示,是说,自己的项目时候是允许这个路径的访问,因为异步通知是服务器通知,如果是你的过滤器或者是springmvc拦截器,把这个路径拦截掉之后,那么你就肯定是接收不到这个异步通知了,
这个问题真的是很简单,但是却是纠结了一上午,在过滤器中将这个异步通知路径放开之后,然后就是支付成功之后,也是执行了自己的逻辑代码,
这个就是这个异步通知的遇到的问题,1开发环境及框架的搭建。(基于SSH开发框架)
2数据库建表,表应该有一个字段用来存储文件在服务区上的存储路径。
3mapxml文件
4Actionxml文件
5写好实体类及get()set()方法
6DAO层
7Action()实现,Action()里面需要实现文件的上传服务器功能和路径存储数据库功能。
8前端页面,前端页面需要实现文件的选择功能。调用支付宝接口:alipaytradepagepay,该接口请求参数中有两个返回地址需要设置,return_url是同步返回地址,用于支付成功后页面的跳转,notify_url是异步通知地址,用于支付宝服务器主动通知商户服务器里指定的页面。问题出在同步返回的时候,因为业务需要返回的地址需要用户的登陆信息,项目中的用的session会话管理,但是调用支付宝支付接口支付成功后返回该同步页面时,却被拦截器拦截,跳到登陆页面,需要输入用户的登陆信息,这种情况是不能忍的。。。⊙o⊙
问题分析:
1考虑到这种情况,首先想到的就是session失效,可是session为什么会失效呢?
首先,session是服务器端为了保存状态而创建的一个特殊的对象。浏览器访问服务器时,服务器创建一个特殊对象session(该对象有一个唯一的id,称为sessionId,服务器会将sessionId以cookie形式发给浏览器,当浏览器再次访问服务器时,会将sessionId发送过来,服务器端可以利用这个sessionId找到相应的session对象)。
到此处判断是支付宝同步返回return_url的时候没有将sessionId发给浏览器,那我就把sessionId发给服务器,采用的解决办法是url重写,将sessionId拼接到return_url后面,格式为?SESSION=sessionId,尝试结果失败>"<||||
为什么会失败呢,代表用这种方式服务器依然无法获得sessionId,服务器如何获取sessionId的呢?后台用的服务器是Tomcat,它在处理>
基本认识:
(一)客户端与服务器端
客户端:浏览者(客户和管理员)使用的计算机。
服务器端:存放网页文件的计算机,发送脉冲、服务器解码所需的协议。
>
(二)文件名,基本名,扩展名
文件名=基本名+扩展名
扩展名:用来区分文件类型。
>如文件名demotxt:demo为基本名,txt为扩展名
(三)打开网页的执行过程
客户端向服务器发送一个请求,服务器在收到请求后将页面代码发送给客户端,然后通过浏览器的解析,生成用户所看到的页面。
(四)站点
站点:放置网站中的网页静态资源(html,css,js,,flash动画,gif)的文件夹。方便管理网站。
做网站的第一步即见文件夹。
(五)基本框架
html:超文本标记语言。(hypertextmark-up)
语法规则:
所有命令都要放到<>
大部分标记都是承兑出现
标签大部分都是<tag>开始,</tag>结束
html语言不区分大小写
如:
标记a:<a></a>
标记b:<b></b>
基本框架:
步骤:计算机新建文件夹——新建记事本文件——扩展名改html——双击打开
注:出现乱码要设置浏览器字符编码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)