支付宝支付
function order_pay($sn,$price) { //合作身份者id,以2088开头的16位纯数字 $alipay_config['partner'] = '2088121321528708'; //收款支付宝账号 $alipay_config['seller_email'] = 'itbing@sina.cn'; //安全检验码,以数字和字母组成的32位字符 $alipay_config['key'] = '1cvr0ix35iyy7qbkgs3gwymeiqlgromm'; //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //签名方式 不需修改 $alipay_config['sign_type'] = strtoupper('MD5'); //字符编码格式 目前支持 gbk 或 utf-8 //$alipay_config['input_charset']= strtolower('utf-8'); //ca证书路径地址,用于curl中ssl校验 //请保证cacert.pem文件在当前文件夹目录中 //$alipay_config['cacert'] = getcwd().'\\cacert.pem'; //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http $alipay_config['transport'] = 'http'; $parameter = array( "service" => "create_direct_pay_by_user", "partner" => $alipay_config['partner'], // 合作身份者id "seller_email" => $alipay_config['seller_email'], // 收款支付宝账号 "payment_type" => '1', // 支付类型 "notify_url" => "http://localhost/mstreet.lzpphp.com/asy", // 服务器异步通知页面路径 "return_url" => "http://localhost/mstreet.lzpphp.com/syn", // 页面跳转同步通知页面路径 "out_trade_no" => $sn, // 商户网站订单系统中唯一订单号 "subject" => $sn, // 订单名称 "total_fee" => $price, // 付款金额 "body" => "《男人街》订单", // 订单描述 可选 "show_url" => "", // 商品展示地址 可选 "anti_phishing_key" => "", // 防钓鱼时间戳 若要使用请调用类文件submit中的query_timestamp函数 "exter_invoke_ip" => "", // 客户端的IP地址 "_input_charset" => 'utf-8', // 字符编码格式 ); // 去除值为空的参数 foreach ($parameter as $k => $v) { if (empty($v)) { unset($parameter[$k]); } } // 参数排序 ksort($parameter); reset($parameter); // 拼接获得sign $str = ""; foreach ($parameter as $k => $v) { if (empty($str)) { $str .= $k . "=" . $v; } else { $str .= "&" . $k . "=" . $v; } } $parameter['sign'] = md5($str . $alipay_config['key']); // 签名 $parameter['sign_type'] = $alipay_config['sign_type']; $html = "https://mapi.alipay.com/gateway.do?".$str.'&sign='.$parameter['sign'].'&sign_type='.$parameter['sign_type']; return $html; }
同步异步
//同步 public function syn(Request $request) { $session = new Session(); $users = $session->get('users'); $result = $request->input(); if($result['is_success']=='T'){ $re = DB::table('man_order_info')->where('order_sn',$result['subject']) ->update([ 'pay_status'=>1, 'money_paid'=>$result['total_fee'], 'pay_time'=>$result['notify_time'] ]); if($re){ DB::table('man_cart')->where('user_id',$users['user_id'])->delete(); echo "<script>alert('完成支付,返回首页');location.href='index'</script>"; }else{ echo "<script>alert('支付状态修改失败,请联系客服');location.href='index'</script>"; } // echo "这是同步"; }else{ echo "<script>location.href='index'</script>"; } } //异步 public function asy(Request $request) { $data = $request->input(); print_r($data);die; $out_trade_no = $data['out_trade_no']; $trade_status = $data['trade_status']; $gmt_payment = $data['gmt_payment']; $re = DB::table('man_order_info')->where('order_sn',$out_trade_no)->first(); if($re) { $res = DB::table('man_order_info')->where('order_sn',$out_trade_no)->update([ 'pay_status'=>1, 'pay_time'=>$gmt_payment ]); if($res){ echo 'success'; } } }