YunCart电商网站支付宝接口出现500错误

简介: yuncart 是一套易与集成的php开源商城系统,方便多人同时经行二次开发,Yuncart 可以以非常方便的方式切换到sql server,oracle等数据库,大小1.9MB,感兴趣的朋友,可以去官网下载。
yuncart 是一套易与集成的php开源商城系统,方便多人同时经行二次开发,Yuncart 可以以非常方便的方式切换到sql server,oracle等数据库,大小1.9MB,感兴趣的朋友,可以去 官网下载。

     最近帮朋友用php做了一个电商网站,化妆品方面的。上网看了相关方面的程序源码,最后选择了yuncart,它轻量、简单、功能丰富等特点,闲暇时,做了些修改。下面就今天出现的问题,简单的说下,希望能帮助到有类似问题的童鞋。

     下图为我朋友的网站:

    yuncart,嫩好看,郑州北鲨科技

 问题描述:

      在网站上购买支付成功后,返回网站时,出现500内部服务器错误。

       排除:出现500后,发现支付宝上交易已成功,钱也少了,说明支付的时候是没有问题的,在回调的过程中发生了错我。

然后,开启网站上的日志,进行线上调试:

    

    最后发现错误的根源出现在:/include/front/third/payment/alipay/alipay_core.function.php中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  function  getHttpResponse( $url $input_charset  '' $time_out  "60" ) {
     $urlarr      parse_url ( $url );
     $errno       "" ;
     $errstr      "" ;
     $transports  "" ;
     $responseText  "" ;
     if ( $urlarr [ "scheme" ] ==  "https" ) {
         $transports  "ssl://" ;
         $urlarr [ "port" ] =  "443" ;
     else  {
         $transports  "tcp://" ;//LCQ修改
         $urlarr [ "port" ] =  "80" ;
     }
     
     
     $fp =@ fsockopen ( $transports . "" . $urlarr [ 'host' ], $urlarr [ 'port' ], $errno , $errstr , $time_out );
     
     if (! $fp )
      {
         die ( "ERROR: $errno - $errstr<br />\n" );
     }
      else  {
         if  (trim( $input_charset ) ==  '' ) {
             fputs ( $fp "POST " . $urlarr [ "path" ]. " HTTP/1.1\r\n" );
         }
         else  {
             fputs ( $fp "POST " . $urlarr [ "path" ]. '?_input_charset=' . $input_charset . " HTTP/1.1\r\n" );
         }
         
         fputs ( $fp "Host: " . $urlarr [ "host" ]. "\r\n" );
         fputs ( $fp "Content-type: application/x-www-form-urlencoded\r\n" );
         fputs ( $fp "Content-length: " . strlen ( $urlarr [ "query" ]). "\r\n" );
         fputs ( $fp "Connection: close\r\n\r\n" );
         fputs ( $fp $urlarr [ "query" ] .  "\r\n\r\n" );
         while (! feof ( $fp ))
         {
             $responseText  .= @ fgets ( $fp , 1024);
         }
 
         fclose( $fp );
         $responseText  = trim( stristr ( $responseText , "\r\n\r\n" ), "\r\n" );
         return  $responseText ;
     }

这个函数中使用了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
fsockopen 这个函数,由于某些服务器或虚拟空间上,不支持php的 fsockopen 方法,网上也有说:在url中,去掉http: //
如:http: //www.xxx.com改成www.xxx.com。但这仍不是问题的核心。换来,改用curl来取代fsockopen。于是
getHttpResponse方法就改写成:
/**
  * 作  者:郑州北鲨* 远程获取数据
  * 注意:该函数的功能可以用curl来实现和代替。curl需自行编写。
  * $url 指定URL完整路径地址
  * @param $input_charset 编码格式。默认值:空值
  * @param $time_out 超时时间。默认值:60
  * return 远程输出的数据
  */
//curl改写fsockopen
function  getHttpResponse( $url , $requestdata , $time_out  "60"
{
     $ci  = curl_init();
     curl_setopt( $ci ,CURLOPT_USERAGENT, "Yuncart" );
     curl_setopt( $ci ,CURLOPT_CONNECTTIMEOUT, $time_out );
     curl_setopt( $ci ,CURLOPT_TIMEOUT, $time_out );
     curl_setopt( $ci ,CURLOPT_RETURNTRANSFER,true);
     curl_setopt( $ci ,CURLOPT_SSL_VERIFYPEER,false);
     curl_setopt( $ci , CURLOPT_HEADER, false);
     curl_setopt( $ci ,CURLOPT_POST,true);
     curl_setopt( $ci , CURLOPT_POSTFIELDS, $requestdata );
     curl_setopt( $ci , CURLINFO_HEADER_OUT, TRUE );
     curl_setopt( $ci , CURLOPT_URL, trim( $url , "?" ));
     $response  = curl_exec( $ci );
     $http_code  = curl_getinfo( $ci , CURLINFO_HTTP_CODE);
     $http_info  = curl_getinfo( $ci );
     curl_close ( $ci );
    return  $response ;
}
这样以来,我们再次测试,OK!交易成功,问题由此解决!
目录
相关文章
发布宝贝提示“亲,您未通过食品资质备案所以无法新发商品”如何解决
亲,您未通过食品资质备案所以无法新发商品!根据《中华人民共和国食品安全法》要求,经营该类目下商品(食用农产品除外)需提供食品经营或食品生产资质,<a href='https://t.tb.cn/5CSyQjdLA5q33HBQElFNGd' target='_blank'>点击查看资质要求学习链接</a>,<a href='https://scportal.taobao.com/quali/portal.htm?source=taobao' target='_blank'>点击立即上传资质</a>,经营不同类型的食品,提交资质时,请您注意“经营范围”的选择。
|
4月前
|
存储 JSON API
如何教会小白使用淘宝API接口获取商品数据
随着互联网的普及,越来越多的人开始接触网络购物,而淘宝作为中国最大的电商平台之一,成为了众多消费者首选的购物平台。然而,对于一些小白用户来说,如何通过淘宝API接口获取商品数据可能是一个难题。本文将详细介绍如何教会小白使用淘宝API接口获取商品数据。
|
5月前
|
前端开发 JavaScript Java
淘东电商项目(24) -获取验证码功能
淘东电商项目(24) -获取验证码功能
36 0
|
4月前
|
数据可视化 机器人
使用RPA轻松实现淘宝评价自动回复
八爪鱼RPA是一款经验丰富的自动化流程处理软件,它可以模拟人在电脑上的操作,按照预设的规则自动执行任务。对于淘宝评价自动回复的场景,可以帮助卖家自动获取评价信息,并根据预设的关键词进行智能化回复。
|
9月前
|
安全 数据管理 测试技术
同城预约上门理疗推拿按摩系统功能开发实例源码规则解析
同城预约上门理疗推拿按摩系统功能开发实例源码规则解析
|
数据采集 存储 算法
Python爬虫必备技能,使用 动态代理ip 获取Steam 热销商品 示例
动态代理ip 相信大家肯定都听说过,或者已经使用过。 本篇文章就来介绍一下什么是动态代理ip,还有一个使用代理ip爬取Youtube游戏模块主页。 使用动态ip有很多好处,比如保护你的网络免受外部攻击、屏蔽你的IP地址等。 那本篇文章就来研究一下这个动态ip,对这方面不了解的小伙伴正好可以一起学习一下。
Python爬虫必备技能,使用 动态代理ip 获取Steam 热销商品 示例
|
数据安全/隐私保护 UED
任务悬赏源码,不可或缺的重要功能之充值提现
任务悬赏源码,不可或缺的重要功能之充值提现
YYC松鼠短视频系统【bug】短信验证码功能bug,新注册短信用户任意填写验证码都能通过注册的严重bug修复
YYC松鼠短视频系统【bug】短信验证码功能bug,新注册短信用户任意填写验证码都能通过注册的严重bug修复
YYC松鼠短视频系统【bug】短信验证码功能bug,新注册短信用户任意填写验证码都能通过注册的严重bug修复
如何开发创建微信、支付宝、百度等多合一小程序?
那么要是能有一个平台,能一下子生成多个平台的小程序就好了,那么小编告诉你,阿里云已经帮你实现了。
9168 0
手机网站支付接口报错“业务解析异常(ALIN10003)”自查方案
错误原因   这个报错一般是出现最老版本的手机网站支付的接口中的,一般是由于域名没有更新导致的(该接口的域名现在更新为了[url]https://mclient.alipay.com/service/rest.
1758 0