Browse Source

debug jspay

stanley-king 8 years ago
parent
commit
b3f07457b3
1 changed files with 34 additions and 16 deletions
  1. 34 16
      helper/pay/jspay.php

+ 34 - 16
helper/pay/jspay.php

@@ -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)