|
@@ -37,29 +37,47 @@ class jspay implements IPay
|
|
|
$input->SetTime_start(date("YmdHis")); //订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
|
|
|
$input->SetTime_expire(date("YmdHis", time() + 600));//订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
|
|
|
$input->SetNotify_url(self::wx_notifyurl);
|
|
|
- //$input->SetTrade_type("APP");//JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里,MICROPAY--刷卡支付,刷卡支付有单独的支付接口,不调用统一下单接口
|
|
|
$input->SetTrade_type("JSAPI");
|
|
|
$input->SetOpenid('oUcoEwPenKPpHenLKCtZhRDVUdgU');
|
|
|
-
|
|
|
$order = WxPayApi::unifiedOrder($input);
|
|
|
|
|
|
- $sorder = $this->toString($order);
|
|
|
- Log::record($sorder, Log::DEBUG);
|
|
|
-
|
|
|
- if (array_key_exists('err_code', $order)) {
|
|
|
- return false;
|
|
|
+ if(!array_key_exists("appid", $order)
|
|
|
+ || !array_key_exists("prepay_id", $order)
|
|
|
+ || $order['prepay_id'] == "")
|
|
|
+ {
|
|
|
+ throw new WxPayException("参数错误");
|
|
|
}
|
|
|
|
|
|
- $ret['appid'] = $order["appid"];
|
|
|
- $ret['noncestr'] = WxPayApi::getNonceStr();
|
|
|
- $ret['package'] = 'Sign=WXPay';
|
|
|
- $ret['partnerid'] = WxPayConfig::MCHID;
|
|
|
- $ret['prepayid'] = $order['prepay_id'];
|
|
|
+ $jsapi = new WxPayJsApiPay();
|
|
|
+ $jsapi->SetAppid($order["appid"]);
|
|
|
$timeStamp = time();
|
|
|
- $ret['timestamp'] = "{$timeStamp}";
|
|
|
- $ret['sign'] = $this->make_sign($ret);
|
|
|
-
|
|
|
- return array("data" => $ret);
|
|
|
+ $jsapi->SetTimeStamp("$timeStamp");
|
|
|
+ $jsapi->SetNonceStr(WxPayApi::getNonceStr());
|
|
|
+ $jsapi->SetPackage("prepay_id=" . $order['prepay_id']);
|
|
|
+ $jsapi->SetSignType("MD5");
|
|
|
+ $jsapi->SetPaySign($jsapi->MakeSign());
|
|
|
+
|
|
|
+// $parameters = json_encode($jsapi->GetValues());
|
|
|
+// return $parameters;
|
|
|
+//
|
|
|
+//
|
|
|
+// $sorder = $this->toString($order);
|
|
|
+// Log::record($sorder, Log::DEBUG);
|
|
|
+//
|
|
|
+// if (array_key_exists('err_code', $order)) {
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+//
|
|
|
+// $ret['appid'] = $order["appid"];
|
|
|
+// $ret['noncestr'] = WxPayApi::getNonceStr();
|
|
|
+// $ret['package'] = 'Sign=WXPay';
|
|
|
+// $ret['partnerid'] = WxPayConfig::MCHID;
|
|
|
+// $ret['prepayid'] = $order['prepay_id'];
|
|
|
+// $timeStamp = time();
|
|
|
+// $ret['timestamp'] = "{$timeStamp}";
|
|
|
+// $ret['sign'] = $this->make_sign($ret);
|
|
|
+
|
|
|
+ return array("data" => $jsapi->GetValues());
|
|
|
}
|
|
|
|
|
|
private function toString($order)
|