今天在做微信支付的时候,从微信端当下来的SDK先做测试,发现Android手机去支付可以正常支付完成,但是IOS支付总是报错。
错误如下:
微信SDK代码如下:
//①、获取用户openid $tools = new JsApiPay(); $openId = $tools->GetOpenid(); //②、统一下单 $input = new WxPayUnifiedOrder(); $input->SetBody("test"); $input->SetAttach("test"); $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis")); $input->SetTotal_fee("1"); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("test"); $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php"); $input->SetTrade_type("JSAPI"); $input->SetOpenid($openId); $order = WxPayApi::unifiedOrder($input); echo '统一下单支付单信息 '; printf_info($order); $jsApiParameters = $tools->GetJsApiParameters($order); //获取共享收货地址js函数参数 $editAddress = $tools->GetEditAddressParameters(); 因为微信支付接口是通过json来进行传递的,我们在输出这个变量可以看出:
$jsApiParameters = $tools->GetJsApiParameters($order);
有一段 "timeStamp":1442386579 时间的值不是字符,而是数值,json的参数必须都是字符,改为"timeStamp":"1442386579" 就可以了。