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