微信支付调用JSAPI缺少参数:timeStamp,解决办法
“微信支付调用JSAPI缺少参数:timeStamp”这个问题,一般不会在安卓手机中出现,苹果会出现这样的问题,弹出下面这样的提示,如果你也是这样,那就恭喜你,现在,你找到解决的方法了。
请看下图红框中的内容
点击打开大图
请注意,这个时间戳是一个字符串!
应该是"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());
}
}