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天前
|
搜索推荐 数据挖掘 API
抖音商品详情API接口对电商的作用及收益
在电商快速发展的背景下,抖音作为全球领先的短视频平台,凭借其庞大的用户基础和高活跃度,通过商品详情API接口为电商行业开辟了新渠道。本文深入解析了抖音商品详情API接口的功能及其对电商的积极作用,包括商品信息实时同步、提升用户体验、精准营销、数据分析与优化等方面,展示了该接口如何帮助电商企业拓展销售渠道、优化商品策略、提升用户满意度、促进跨界合作与开发创新商业模式,为电商企业带来显著收益。同时,文章也探讨了实现这些收益的关键步骤及面临的挑战,强调了数据安全与隐私保护的重要性,以及创新和差异化竞争的必要性。
23 4
|
3月前
|
API 数据格式 开发者
京东商品详情对接中常见错误异常情况处理(附源码)
京东商品详情API让开发者轻松获取京东平台上商品的详尽信息,如标题、价格等,便于集成至自建应用中,提升用户体验与业务决策精度。使用前需注册账号、创建应用并熟悉API文档。常见Python示例代码助你快速上手。合理应对权限、数据格式及网络等问题,确保应用稳定高效运行。
|
4月前
|
小程序 前端开发
手机租房房源小程序模板源码
手机租房房源小程序模板源码
143 4
|
4月前
|
安全 API Windows
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
|
6月前
|
监控 数据挖掘 API
京东商品API接口:电商数据自动化的钥匙
京东商品API接口为电商领域带来了巨大的便利和潜力。通过本篇文章,读者应该能够了解如何使用京东商品API接口,并通过示例代码学习如何实际调用API获取商品数据。 随着技术的不断发展,京东商品API接口将继续为电商自动化、数据分析和市场研究提供支持,帮助商家和开发者在竞争激烈的市场中保持领先。我们鼓励读者继续探索和学习,充分利用京东商品API接口带来的机遇。
|
11月前
|
小程序 PHP
微信公众号开发(六)微信支付(发红包、企业支付到零钱)需要证书请求示例
这里最主要的就是curlpost请求的时候需要带上证书。否则请求会失败。
128 0
|
API PHP
漏刻有时API接口实战开发系列(9):短信宝短信接口php开发及调用
漏刻有时API接口实战开发系列(9):短信宝短信接口php开发及调用
83 0
|
安全 数据管理 测试技术
同城预约上门理疗推拿按摩系统功能开发实例源码规则解析
同城预约上门理疗推拿按摩系统功能开发实例源码规则解析
各种API接口,淘宝,1688、拼多多、京东各种接口详情分类
各种API接口,淘宝,1688、拼多多、京东各种接口详情分类