Magento SOAP 那些破事

使用magento避免不了使用他们的API就是SOAP跟后端的erp打交道。出现错误很恶心的是在内网调试是没问题的,但是到了外网就挂了。

最常见的就是
SOAP-ERROR: Parsing WSDL: Couldn't load from failed to load external entity

这个错误。

产生这个错误的情况很多,怎么排查呢?

1、确保你的网站确保安装了SSL证书;

2、直接访问https://yourdomain/api/v2_soap看看是否报错,一般是会报错的,那么检查一下你的服务器是否有防火墙有相关的设置拦截了;

3、排查一下 PHP 的 openssl 扩展是否开启在php.ini里面,宝塔用户不用管因为是默认开启的;

查看 .ini 如下配置,去掉前边的 ; 即可。

;extension=php_openssl.dll

4、排查API所在的服务器能否访问自身,这个很重要。修改 /etc/hosts添加域名与本机的映射

127.0.0.1 www.yourdomian.com

 

Nginx 502 Bad Gateway错误

[error] 15072#0: *685698 recv() failed (104: Connection reset by peer) while reading response header from upstream

在php.ini和php-fpm.conf中分别有这样两个配置项:max_execution_time和request_terminate_timeout。

这两项都是用来配置一个PHP脚本的最大执行时间的。当超过这个时间时,PHP-FPM不只会终止脚本的执行,

还会终止执行脚本的Worker进程。所以Nginx会发现与自己通信的连接断掉了,就会返回给客户端502错误。将这2个参数值适当加大即可。

 

修改NGINX 适当加大
client_header_buffer_size
client_body_buffer_size
server_names_hash_bucket_size

最后验证是否成功

先去后台建立一个soap帐户并赋予权限记住用户名密码,然后上测试代码 

<?php
libxml_disable_entity_loader(false);

try {
	$wsdl = 'http://www.yourdomain.com/api/v2_soap/?wsdl';
	$client = new SoapClient($wsdl);


	$session = $client->login('用户名', '密码');
	$result = $client->customerCustomerCreate($session, array('email' => '444@example.org', 'firstname' => 'Dough', 'lastname' => 'Deeks', 'password' => 'password', 'website_id' => 1, 'store_id' => 1, 'group_id' => 1));

	var_dump ($result);
	die();
}
catch(SoapFault $e) {
	var_dump ($e);
}
?>

以上是创建用户的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值