微信支付接口开发新手常见问题解决

 更新时间:2016年11月25日 15:31  点击:1603
微信支付接口开发新手常见问题其实就是下载的实际下来一些常用的小问题了,下面我们来看看小编整理的一篇相关文章。
今天,我下载了官方文档,直接用官方demo(php版本)做了个简单支付页面。遇到了下面问题。
1、配置文件修改

找到配置文件WxPay.Config.php,只需要配置下面四项

微信支付接口开发遇到的小问题

2、redirect_uri参数错误

登陆公众管理后台-点击开发者中心-找到网页帐号点击修改,写自己域名,保存生效。

3、页面URL未注册

登陆公众微信后台-微信支付-开发配置,支付授权目录路径一直到最后一个斜杠

我设置的测试授权目录是:http://www.xxx.com.cn/m/test/wxpay/example/
我的JsApi支付页面是:http://www.xxx.com.cn/m/test/wxpay/example/money.php

4、样例页面

jsapi.php jsApi支付

micropay.php 刷卡支付
native.php 扫码支付
orderquery.php 订单查询
refund.php 订单退款
refundquery.php 退款查询
download.php 下载订单
session丢失很奇怪了经常会有碰到过小编碰到一个session丢失问题到现在还没有解决了,今天碰到了kindeditor多图上传session丢失问题了一起来看解决方案。

解决办法:

1.在创建文本编辑器时增加session_id的传递

<script>
var editor;
KindEditor.ready(function(K) {
    editor = K.create('textarea[name="content"]', {
        allowFileManager : true,
        extraFileUploadParams:{
            'PHPSESSID' : "<?=session_id()?>"
        }
    });
</script>

<textarea name="content" style="width:800px;height:400px;visibility:hidden;">KindEditor</textarea>

2.upload_json.php文件增加session初始化

$session=isset($_POST['PHPSESSID'])?$_POST['PHPSESSID']:'';

if($session){//重新设置cookie,解决使用Flash上传图片时cookie丢失的问题

    session_id($session);

    session_start();

}else{
    session_start();
}

header在php中的作用有很多跳转,及发送头部信息之类的,那么除了这两种功能还有其它功能吗,我们来看看php 常用header常用例子吧。

这里记录下常用header的信息

<?php
header('HTTP/1.1 200 OK');  // ok 正常访问
header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在
header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301
header('Location: http://www.ruonu.com/'); //跳转到一个新的地址
header('Refresh: 10; url=http://www.ruonu.com/'); //延迟转向 也就是隔几秒跳转
header('X-Powered-By: PHP/7.0.0'); //修改 X-Powered-By信息
header('Content-language: en'); //文档语言
header('Content-Length: 1234'); //设置内容长度
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); //告诉浏览器最后一次修改时间
header('HTTP/1.1 304 Not Modified'); //告诉浏览器文档内容没有发生改变
 
###内容类型###
header('Content-Type: text/html; charset=utf-8'); //网页编码
header('Content-Type: text/plain'); //纯文本格式
header('Content-Type: image/jpeg'); //JPG、JPEG 
header('Content-Type: application/zip'); // ZIP文件
header('Content-Type: application/pdf'); // PDF文件
header('Content-Type: audio/mpeg'); // 音频文件 
header('Content-type: text/css'); //css文件
header('Content-type: text/javascript'); //js文件
header('Content-type: application/json');  //json
header('Content-type: application/pdf'); //pdf
header('Content-type: text/xml');  //xml
header('Content-Type: application/x-shockw**e-flash'); //Flash动画
 
######
 
###声明一个下载的文件###
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="ITblog.zip"');
header('Content-Transfer-Encoding: binary');
readfile('test.zip');
######
 
###对当前文档禁用缓存###
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
######
 
###显示一个需要验证的登陆对话框### 
header('HTTP/1.1 401 Unauthorized'); 
header('WWW-Authenticate: Basic realm="Top Secret"'); 
######
 
 
###声明一个需要下载的xls文件###
header('Content-Disposition: attachment; filename=ithhc.xlsx');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Length: '.filesize('./test.xls')); 
header('Content-Transfer-Encoding: binary'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
readfile('./test.xls'); 
######
 
 
?>

php curl_multi 多线程的例子用到的不多时,但是在php使用到多线程的话我们会用到php curl_multi 了,下面来看一个例子。

PHP自身没有多线程的,可以借助扩展实现。但是curl_multi* 函数实现了多线程访问网站数据的功能。
步骤总结如下:

第一步:调用curl_multi_init
第二步:循环调用curl_multi_add_handle
这一步需要注意的是,curl_multi_add_handle的第二个参数是由curl_init而来的子handle。
第三步:持续调用curl_multi_exec
第四步:根据需要循环调用curl_multi_getcontent获取结果
第五步:调用curl_multi_remove_handle,并为每个字handle调用curl_close
第六步:调用curl_multi_close

 

 代码如下 复制代码

<?php
$t=getTime();
$total=10;
for($i=0;$i<$total;$i++){
 $url_arr[] = "http://www.111cn.net /test";
}
   
$mh = curl_multi_init();
foreach ($url_arr as $i => $url) {
 $conn[$i] = curl_init($url);
 curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1); // 设置返回页面输出内容
 curl_multi_add_handle ($mh,$conn[$i]); // 添加线程
}
#----------------执行线程----------------
do {
 $mrc = curl_multi_exec($mh,$active);
}while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active and $mrc == CURLM_OK) {
 if (curl_multi_select($mh) != -1) {
  do {
   $mrc = curl_multi_exec($mh, $active);
  } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 }
}

foreach ($url_arr as $i => $url) {
 $res[$i]=curl_multi_getcontent($conn[$i]);//得到页面输入内容
 curl_multi_remove_handle($mh, $conn[$i]);
 curl_close($conn[$i]);
}
curl_multi_close($mh);

foreach($res as $k=>$v){
 $k=str_pad($k,2,0);
 echo "$k => $v <br>";
}

runTime($t);
#----------- calculate time function-------------
function getTime(){
 $TIME=explode(" ",microtime());
 $TIME=$TIME[1].substr($TIME[0],1);
 return $TIME;
}
function runTime($t,$l=3){
 $dif=getTime()-$t;
 echo ' '.number_format($dif,$l);
}
?>

记住密码功能我们在许多网站登录时都会看到有这个功能了,下面我们来看一篇基于php的记住密码功能的实现方法,具体的例子如下所示。

提供两个内置的方法,可以在项目中直接使用,很方便


/**
 * 记住密码/清空密码
 *
 * @param $phone
 * @param $pwd
 * @param $name
 */
public function SeTpassword($phone, $pwd , $name, $type){
    if($type == 1) {
        $data = array(
            'phone' => $phone,
            'pwd' => $pwd
        );
        $key = base64_encode(json_encode($data));
        setcookie($name, $key, time() + 3600 * 24 * 7, '/', '', '', true);
    }else{
        setcookie($name,'' , time() - 3600 * 24 * 30, '/', '', '', true);
    }
}
 
/**
 * 得到保存的密码
 * @param $name
 * @return mixed
 */
public function GetPassword($name){
    $info = array();
    if(!isset($_COOKIE[$name])){
        $data['errorCode'] = 1;
    }else{
        if($_COOKIE[$name] == ''){
            $data['errorCode'] = 1;
        }else{
            $key = json_decode(base64_decode($_COOKIE[$name], true),true);
            if(!is_array($key)){
                $data['errorCode'] = 1;
            }else{
                $data['errorCode'] = 0;
                $info['phone'] = $key['phone'];
                $info['pwd'] = $key['pwd'];
                $info['type'] = 1;
            }
        }
    }
    if($data['errorCode'] == 1){
        $info['phone'] = '';
        $info['pwd'] = '';
        $info['type'] = 0;
    }
    return $info;
}

[!--infotagslink--]

相关文章

  • C#微信开发之发送模板消息

    这篇文章主要为大家详细介绍了C#微信开发之发送模板消息的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Mysql常见问题集锦

    1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a'...2013-10-04
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • iOS新版微信底部返回横条问题的解决

    这篇文章主要介绍了iOS新版微信底部返回横条问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • 基于C#实现微信支付宝扫码支付功能

    为公司系统业务需要,这几天了解了一下微信和支付宝扫码支付的接口,并用c#实现了微信和支付宝扫码支付的功能。需要的朋友跟随小编一起看看吧...2020-06-25
  • Python爬取微信小程序通用方法代码实例详解

    这篇文章主要介绍了Python爬取微信小程序通用方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29
  • C#实现的微信网页授权操作逻辑封装示例

    这篇文章主要介绍了C#实现的微信网页授权操作逻辑封装,分析了微信网页授权操作的原理、步骤并给出了C#实现的网页授权操作逻辑封装类,需要的朋友可以参考下...2020-06-25
  • iOS新版微信底部工具栏遮挡问题完美解决

    这篇文章主要介绍了iOS新版微信底部工具栏遮挡问题完美解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • C#图像识别 微信跳一跳机器人

    这篇文章主要为大家详细介绍了C#图像识别,微信跳一跳机器人,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 简单用VBS调用企业微信机器人发定时消息的方法

    这篇文章主要介绍了简单用VBS调用企业微信机器人发定时消息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • python实现企业微信定时发送文本消息的实例代码

    这篇文章主要介绍了python实现企业微信定时发送文本消息的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-25
  • 微信为何被“专利流氓”起诉?腾讯太有钱

    六月才刚刚过半,就已经相继有中兴、华为被美国起诉,此次微信也未能幸免,被美国一家叫Uniloc的公司起诉,理由是微信的语音群聊、视频聊天等功能侵犯其两项与电话会议技术相关的专利,该公司要求微信立即中止这些功能。...2016-07-04
  • 原生JS实现微信通讯录

    这篇文章主要为大家详细介绍了原生JS实现微信通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-19
  • HTML5实现微信拍摄上传照片功能

    这篇文章主要介绍了HTML5实现微信拍摄上传照片功能,实现HTML5 Canvas手机拍摄,本地压缩上传图片时遇到问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-04-27
  • 解决微信授权成功后点击按返回键出现空白页和报错的问题

    这篇文章主要介绍了解决微信授权成功后点击按返回键出现空白页和报错的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-08
  • windows 10 安装和使用中5个常见问题

    2015年7月29日0点起,Windows 10推送全面开启,Windows7、Windows8.1用户可以免费升级到Windows 10,用户也可以通过系统升级到Windows10,在这过程中,用户会遇到这样那样的问题,下面小编总结了windows 10 安装和使用中5个常见问题,需要的朋友可以参考下...2016-01-27
  • php中session常见问题分析

    PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
  • 使用JavaScript脚本判断页面是否在微信中被打开

    这篇文章主要介绍了使用JavaScript脚本判断网页是否在微信中被打开的方法,在各种使用微信参加活动的移动版页面上经常可以用到,需要的朋友可以参考下...2016-03-09
  • iOS APP实现微信H5支付示例总结

    这篇文章主要介绍了iOS APP实现微信H5支付示例总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • JavaScript结合Bootstrap仿微信后台多图文界面管理

    这篇文章主要为大家详细介绍了js结合Bootstrap仿微信后台多图文界面管理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-07-29