Selaa lähdekoodia

wx webpay update

ayHaru 4 vuotta sitten
vanhempi
commit
5fc06565f3

+ 1 - 1
data/api/pub_wxpay/lib/WxPay.Config.php

@@ -28,7 +28,7 @@ class WxPayConfig
 	const MCHID = MINIPAY_WXPAY_MCHID;
 	const KEY   = MINIPAY_WXPAY_KEY; //'0f86a4a9b1edb51b1a7d110fa223a157';
 	const APPSECRET = PUB_APPSECRET; //'ee64233b3144d76217161666f8cb4c86';
-
+    const NOTIFY_URL  = BASE_SITE_URL . '/mobile/pub_wxnotify.php';
 	//=======【证书路径设置】=====================================
 	/**
 	 * TODO:设置商户证书路径

+ 8 - 1
data/api/pub_wxpay/lib/WxPay.Data.php

@@ -642,7 +642,14 @@ class WxPayUnifiedOrder extends WxPayDataBase
 		return array_key_exists('goods_tag', $this->values);
 	}
 
-
+    /**
+     * 设置H5支付场景信息
+     * @param string $value
+     **/
+    public function SetScene_info($value)
+    {
+        $this->values['scene_info'] = $value;
+    }
 	/**
 	* 设置接收微信支付异步通知回调地址
 	* @param string $value 

+ 12 - 6
helper/pay/webpay.php

@@ -17,6 +17,11 @@ require_once(MINIPAY_PATHEX . '/lib/WxPay.Exception.php');
 require_once(MINIPAY_PATHEX . '/lib/WxPay.Notify.php');
 require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
 
+
+use \WxPayUnifiedOrder;
+use \WxPayApi;
+use \WxPayJsApiPay;
+use \WxPayException;
 use Log;
 use util;
 
@@ -34,7 +39,7 @@ class webpay implements IPay
 
     public function gen_pay($pay_sn,$fee,$order_sn,$subject)
     {
-        $input = new \MiniPay\WxPayUnifiedOrder();
+        $input = new WxPayUnifiedOrder();
         $input->SetBody($subject); //商品或支付单简要描述
         $input->SetAttach($pay_sn); //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
         $out_trade_no = $pay_sn . sprintf("%03d",mt_rand(0,999)); //给微信用的每次重新生成的商户订单SN, 避免二次支付, 数额修改导致支付失败
@@ -44,25 +49,26 @@ class webpay 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("MWEB");
+        $input->SetScene_info(self::wx_notifyurl);
+        $input->SetTrade_type('{"h5_info": {"type":"Wap","wap_url": "https://www.xyzshops.cn","wap_name": "椰子商城"}}');
         $input->SetSpbill_create_ip(util::real_ip());
 
-        $order = \MiniPay\WxPayApi::unifiedOrder($input);
+        $order = WxPayApi::unifiedOrder($input);
         Log::record("webpay order=" . json_encode($order),Log::DEBUG);
 
         if(!array_key_exists("appid", $order)
             || !array_key_exists("prepay_id", $order)
             || $order['prepay_id'] == "")
         {
-            throw new \MiniPay\WxPayException("参数错误");
+            throw new WxPayException("参数错误");
         }
 
 
-        $jsapi = new \MiniPay\WxPayJsApiPay();
+        $jsapi = new WxPayJsApiPay();
         $jsapi->SetAppid($order["appid"]);
         $timeStamp = time();
         $jsapi->SetTimeStamp("$timeStamp");
-        $jsapi->SetNonceStr(\MiniPay\WxPayApi::getNonceStr());
+        $jsapi->SetNonceStr(WxPayApi::getNonceStr());
         $jsapi->SetPackage("prepay_id=" . $order['prepay_id']);
         $jsapi->SetSignType("MD5");
         $jsapi->SetPaySign($jsapi->MakeSign());