Am使用php5.6 win:8.1
无法通过SOAP客户端进行钱包销售。
我的请求数组类似
([reqAmt] => 025000
[recurMan] => Array ([id] => 1537444446788162467
)
[merc] => Array(
[id] => 1223234234
[regKey] => adsds23234343
[inType] => 1
[prodType] => 5
)
[tranCode] => 0
)
但最后发送的请求已打印
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://postilion/realtime/merchantframework/xsd/v1/">
<SOAP-ENV:Body><ns1:SendTranRequest>
<ns1:merc>
<ns1:id>1223234234</ns1:id>
<ns1:regKey>adsds23234343</ns1:regKey>
<ns1:inType>1</ns1:inType>
<ns1:prodType>5</ns1:prodType>
</ns1:merc>
<ns1:tranCode>0</ns1:tranCode>
<ns1:reqAmt>025000</ns1:reqAmt>
<ns1:recurMan>
<ns1:id>2147483647</ns1:id>
</ns1:recurMan>
</ns1:SendTranRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
如果我在发送请求之前转换为float,则钱包ID更改了
从(发送)1537444446788162467(肥皂)1537444446788162560
如何解决?
答案 0 :(得分:1)
我会在这里进行猜测,但是如果SOAP端点确实确实期望Int而不是Float,那么我猜您正在运行32位版本的PHP。
32位版本的PHP的PHP_INT_MAX
值为2147483647
。
32位版本的PHP的PHP_INT_MAX
值为9223372036854775807
。
http://php.net/manual/en/language.types.integer.php
如果是这样,我希望您的Windows是64位!更新您的PHP安装。
更新。
好吧,您评论说“ WSDL期望长时间使用64位PHP”。因此它将拒绝一个整数!因此,只需使其浮动即可!
'id' => (float) 7777778541