123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 15/12/9
- * Time: 上午12:25
- */
- define(WXPAY_PATH,BASE_DATA_PATH.'/api/wxpay');
- require_once (WXPAY_PATH . '/lib/WxPay.Api.php');
- require_once (WXPAY_PATH . '/lib/WxPay.Config.php');
- require_once (WXPAY_PATH . '/lib/WxPay.Data.php');
- require_once (WXPAY_PATH . '/lib/WxPay.Exception.php');
- require_once (WXPAY_PATH . '/lib/WxPay.Notify.php');
- class app_payControl extends mobileHomeControl
- {
- public function uniorderOp()
- {
- // $desc = $_POST['desc'];
- // $attach = $_POST['attatch'];
- $total_fee = 1;//intval($_POST['fee']) * 100;
- $input = new WxPayUnifiedOrder();
- $input->SetBody("test"); //商品或支付单简要描述
- $input->SetAttach("test"); //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
- $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));//商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
- $input->SetTotal_fee("1");//订单总金额,单位为分,详见支付金额
- $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->SetGoods_tag("test");
- $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
- $input->SetTrade_type("APP");//JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里,MICROPAY--刷卡支付,刷卡支付有单独的支付接口,不调用统一下单接口
- $order = WxPayApi::unifiedOrder($input);
- $ret = $this->handle_order($order);
- //$ret['sign'] = $order['sign'];
- $ret['prepayid'] = $order['prepay_id'];
- $ret['partnerid'] = WxPayConfig::MCHID;
- joutput_data($ret);
- }
- private function handle_order($order)
- {
- $jsapi = new WxPayJsApiPay();
- $jsapi->SetAppid($order["appid"]);
- $timeStamp = time();
- $jsapi->SetTimeStamp("$timeStamp");
- $jsapi->SetNonceStr(WxPayApi::getNonceStr());
- //$jsapi->SetPackage('Sign=WXPay');
- $jsapi->SetPackage("prepay_id=" . $order['prepay_id']);
- $jsapi->SetSignType("MD5");
- //$sign = $jsapi->MakeSign();
- $jsapi->SetSign();
- $jsapi->SetPaySign($jsapi->MakeSign());
- return $jsapi->GetValues();
- }
- public function notifyOp()
- {
- }
- }
|