“微信支付调用JSAPI缺少参数:timeStamp”这个问题,一般不会在安卓手机中出现,苹果会出现这样的问题,弹出下面这样的提示,如果你也是这样,那就恭喜你,现在,你找到解决的方法了。
图1

请看下图红框中的内容

点击打开大图

图2

图3

请注意,这个时间戳是一个字符串!

应该是"timeStamp":"1421823442" 而不是"timeStamp":1421823442

所以你要修改WxPayHelper.php文件中的create_app_package方法和create_biz_package方法

修改后的代码如下:

function create_biz_package(){
		 try {
		  
			if($this->check_cft_parameters() == false) {   
			   throw new SDKRuntimeException("生成package参数缺失!" . "<br>");
		    }
		    $nativeObj["appId"] = APPID;
		    $nativeObj["package"] = $this->get_cft_package();
		    $nativeObj["timeStamp"] = (string)time();
		    $nativeObj["nonceStr"] = $this->create_noncestr();
		    $nativeObj["paySign"] = $this->get_biz_sign($nativeObj);
		    $nativeObj["signType"] = SIGNTYPE;
		   
		    return   json_encode($nativeObj);
		   
		}catch (SDKRuntimeException $e)
		{
			die($e->errorMessage());
		}		   
		
}
function create_app_package($traceid=""){
		//echo $this->create_noncestr();
        try {
           //var_dump($this->parameters);
		   if($this->check_cft_parameters() == false) {
			   throw new SDKRuntimeException("生成package参数缺失!" . "<br>");
		    }
		    $nativeObj["appid"] = APPID;
		    $nativeObj["package"] = $this->get_cft_package();
		    $nativeObj["timestamp"] = (string)time();
		    $nativeObj["traceid"] = $traceid;
		    $nativeObj["noncestr"] = $this->create_noncestr();
		    $nativeObj["app_signature"] = $this->get_biz_sign($nativeObj);
		    $nativeObj["sign_method"] = SIGNTYPE;
		    return   json_encode($nativeObj);
		}catch (SDKRuntimeException $e)
		{
			die($e->errorMessage());
		}		
}