public function submit() { //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $this->out_trade_no . '</out_trade_no><subject>' . $this->subject . '</subject><total_fee>' . $this->total_fee . '</total_fee></direct_trade_create_req>'; //必填 //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正在跳转支付页面...'); return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>支付宝即时到账交易接口接口</title> </head>' . $html_text . ' </body> </html>'; }
/** * @brief 开始向接口发送数据 * @param $data array 订单和配送数据 */ public function send($data) { require_once dirname(__FILE__) . "/lib/alipay_submit.class.php"; /* if(isset($data['seller_id']) && $data['seller_id'] > 0 ){ //获取商户的支付配置信息 $sellPay = new IModel("seller_payment"); $sellers = $sellPay->getObj("seller_id = ".$data['seller_id']); if(empty($sellers)){ return false; } } */ $alipay_config = array('partner' => Payment::getConfigParam($data['pay_type'], 'M_PartnerId'), 'key' => Payment::getConfigParam($data['pay_type'], 'M_PartnerKey'), 'sign_type' => strtoupper('MD5'), 'input_charset' => strtolower('utf-8'), 'cacert' => getcwd() . '/cacert.pem', 'transport' => 'http'); //支付宝交易号 $trade_no = $data['trade_no']; //必填 //物流公司名称 $logistics_name = $data['freight_type']; //必填 //物流发货单号 $invoice_no = $data['delivery_code']; //物流运输类型 三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS) $transport_type = 'EXPRESS'; //构造要请求的参数数组,无需改动 $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower('utf-8'))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); }
public function buildForm($request) { //构造要请求的参数数组,无需改动 $req_id = date('Ymdhis'); $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $request->out_trade_no . '</out_trade_no><subject>' . $request->subject . '</subject><total_fee>' . $request->total_fee . '</total_fee><merchant_url>' . $this->merchant_url . '</merchant_url></direct_trade_create_req>'; $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->partner), "key" => $this->key, 'sec_id' => $this->sign_type, "format" => $this->format, "v" => $this->v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->_input_charset))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->partner), 'sec_id' => $this->sign_type, "format" => $this->format, "v" => $this->v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->_input_charset))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); return $alipaySubmit->buildRequestForm($parameter, "get", "确认"); }
public function send($trade_no, $logistics_name, $invoice_no) { require_once "lib/alipay_submit.class.php"; $alipaySubmit = new AlipaySubmit($this->config); $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($this->config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => 'EXPRESS', "_input_charset" => trim(strtolower($alipay_config['input_charset']))); $html_text = $alipaySubmit->buildRequestHttp($parameter); }
public function config($config = null) { $format = "xml"; $req_id = date('Ymdhis'); $merchant_url = ""; $notify_url = $config['NotifyUrl']; $return_url = $config['ReturnUrl']; $seller_email = $config['pay_type_data']['user']['val']; $out_trade_no = $config['code']; $subject = $config['title']; $total_fee = $config['money']; $wapalipay_config_id = trim($config['id']); $wapalipay_config_key = trim($config['key']); $wapalipay_config_input_charset = strtolower('utf-8'); $wapalipay_config_sign_type = strtoupper('MD5'); $wapalipay_config_input_charset = strtolower('utf-8'); $wapalipay_config_cacert = dirname(__FILE__) . DIRECTORY_SEPARATOR . "wapalipay" . DIRECTORY_SEPARATOR . "cacert.pem"; $wapalipay_config_private_key_path = '.' . DIRECTORY_SEPARATOR . 'wapalipay' . DIRECTORY_SEPARATOR . 'rsa_private_key.pem'; $wapalipay_config_ali_public_key_path = '.' . DIRECTORY_SEPARATOR . 'wapalipay' . DIRECTORY_SEPARATOR . 'alipay_public_key.pem'; $wapalipay_config_transport = 'http'; $wapalipay_config = array("partner" => $wapalipay_config_id, "key" => $wapalipay_config_key, "private_key_path" => $wapalipay_config_private_key_path, "ali_public_key_path" => $wapalipay_config_ali_public_key_path, "sign_type" => $wapalipay_config_sign_type, "input_charset" => $wapalipay_config_input_charset, "cacert" => $wapalipay_config_cacert, "transport" => $wapalipay_config_transport); $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $return_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($config['id']), "sec_id" => $wapalipay_config_sign_type, "format" => $format, "v" => "2.0", "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => $wapalipay_config_input_charset); $wapalipaySubmit = new AlipaySubmit($wapalipay_config); $html_text = $wapalipaySubmit->buildRequestHttp($para_token); $html_text = urldecode($html_text); $para_html_text = $wapalipaySubmit->parseResponse($html_text); $request_token = $para_html_text['request_token']; $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($config['id']), "sec_id" => $wapalipay_config_sign_type, "format" => $format, "v" => "2.0", "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => $wapalipay_config_input_charset); $wapalipaySubmit = new AlipaySubmit($wapalipay_config); $this->url = $wapalipaySubmit->buildRequestForm($parameter, 'get', '确认'); }
public function pay() { $orderName = htmlentities($_GET['orderName']); $orderid = htmlentities($_GET['orderid']); $from = htmlentities($_GET['from']); if (!$orderName) { $orderName = microtime(); } if (!$orderid) { $orderid = htmlentities($_GET['single_orderid']); } $payHandel = new payHandle($this->token, $from, 'alipay'); $orderInfo = $payHandel->beforePay($orderid); $price = $orderInfo['price']; if ($orderInfo['paid']) { exit('您已经支付过此次订单!'); } if (!$price) { exit('必须有价格才能支付'); } require_once $this->base_path . 'lib/alipay_submit.class.php'; $format = 'xml'; $v = '2.0'; $req_id = date('Ymdhis'); if (($_GET['platform'] || $_GET['pl']) && C('platform_open') && C('platform_alipay_open')) { $query_string_base = 'token=' . $this->token . '|wecha_id=' . $this->wecha_id . '|from=' . $from . '|pl=1'; $query_string_base_notify = 'token||' . $this->token . '|wecha_id||' . $this->wecha_id . '|from||' . $from . '|pl||1'; } else { $query_string_base = 'token=' . $this->token . '|wecha_id=' . $this->wecha_id . '|from=' . $from; $query_string_base_notify = 'token||' . $this->token . '|wecha_id||' . $this->wecha_id . '|from||' . $from; } $notify_url = C('site_url') . '/wxpay/alipaytype_notify_url.php?user_params=' . $query_string_base_notify; $call_back_url = C('site_url') . '/wxpay/alipaytype_call_back_url.php?user_params=' . $query_string_base; $merchant_url = C('site_url') . '/wxpay/alipaytype_break.php'; $out_trade_no = $orderid; $subject = $orderName; $total_fee = $price; $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($this->alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; $para_token = array('service' => 'alipay.wap.trade.create.direct', 'partner' => trim($this->alipay_config['partner']), 'sec_id' => trim($this->alipay_config['sign_type']), 'format' => $format, 'v' => $v, 'req_id' => $req_id, 'req_data' => $req_data, '_input_charset' => trim(strtolower($this->alipay_config['input_charset']))); $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); $html_text = urldecode($html_text); $para_html_text = $alipaySubmit->parseResponse($html_text); $request_token = $para_html_text['request_token']; $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; $parameter = array('service' => 'alipay.wap.auth.authAndExecute', 'partner' => trim($this->alipay_config['partner']), 'sec_id' => trim($this->alipay_config['sign_type']), 'format' => $format, 'v' => $v, 'req_id' => $req_id, 'req_data' => $req_data, '_input_charset' => trim(strtolower($this->alipay_config['input_charset']))); $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); header('Content-type: text/html; charset=utf-8'); echo $html_text; }
public function send($post) { require_once "lib/alipay_submit.class.php"; $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($this->alipay_config['partner']), "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])), "trade_no" => $post['trade_no'], "logistics_name" => "无需物流", "invoice_no" => "", "transport_type" => "DIRECT", "create_transport_type" => "DIRECT", "seller_ip" => ""); $this->alipay_config['cacert'] = $this->cacert; $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); return $html_text; }
public function buildRequestHttp($request) { $rs = $request->getParams(); $parameter = array('partner' => $this->partner, '_input_charset' => $this->input_charset); $parameter = array_merge($parameter, $rs); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); return $html_text; }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function get_wappay_url($order, $payment) { $order_id = $order['order_id']; $order_desc = $order['order_sn']; $order_sn = $order['order_sn']; $amount = $order['order_amount']; $ecmobile_url = ecmobile_url(); //修正配置文件路径 $this->alipay_config = $this->modify_config_path($this->alipay_config); $format = "xml"; //返回格式 $v = "2.0"; $req_id = date('Ymdhis'); //请求号 $notify_url = $ecmobile_url . "/payment/alipay/wap/notify_url.php"; //服务器异步通知页面路径 $call_back_url = $ecmobile_url . "/payment/wap_callback.php?code=alipay"; //页面跳转同步通知页面路径 $merchant_url = $ecmobile_url . "/payment/wap_merchant.php?code=alipay"; //操作中断返回地址 $seller_email = '*****@*****.**'; //卖家支付宝帐户 $out_trade_no = $order_sn; //商户订单号 $subject = $order_desc; //订单名称 $total_fee = $amount; //付款金额 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; if ($request_token) { //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $url = $alipaySubmit->alipay_gateway_new . $alipaySubmit->buildRequestParaToString($parameter); return $url; } else { return false; } }
public function submit($param) { $this->format = 'xml'; $this->v = '2.0'; $this->req_id = date('Ymdhis'); $this->notify_url = MOBILE_SITE_URL . '/api/payment/alipay/notify_url.php'; $this->call_back_url = MOBILE_SITE_URL . '/api/payment/alipay/call_back_url.php'; $this->seller_email = $param['alipay_account']; //v3-b11 $this->out_trade_no = $param['order_sn'] . '-' . $param['order_type']; $this->subject = $param['order_sn']; $this->total_fee = $param['order_amount']; $this->alipay_config = array('partner' => $param['alipay_partner'], 'key' => $param['alipay_key'], 'private_key_path' => 'key/rsa_private_key.pem', 'ali_public_key_path' => 'key/alipay_public_key.pem', 'sign_type' => 'MD5', 'input_charset' => 'utf-8', 'cacert' => getcwd() . '\\cacert.pem', 'transport' => 'http'); //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $this->out_trade_no . '</out_trade_no><subject>' . $this->subject . '</subject><total_fee>' . $this->total_fee . '</total_fee></direct_trade_create_req>'; //必填 //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正在跳转支付页面...'); return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>支付宝即时到账交易接口接口</title> </head>' . $html_text . ' </body> </html>'; }
/** * @brief 开始向接口发送数据 * @param $data array 订单和配送数据 */ public function send($data) { require_once dirname(__FILE__) . "/lib/alipay_submit.class.php"; $alipay_config = array('partner' => $data['partner_id'], 'key' => $data['partner_key'], 'sign_type' => strtoupper('MD5'), 'input_charset' => strtolower('utf-8'), 'cacert' => getcwd() . '/cacert.pem', 'transport' => 'http'); //支付宝交易号 $trade_no = $data['trade_no']; //必填 //物流公司名称 $logistics_name = $data['freight_type']; //必填 //物流发货单号 $invoice_no = $data['delivery_code']; //物流运输类型 三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS) $transport_type = 'EXPRESS'; //构造要请求的参数数组,无需改动 $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower('utf-8'))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); }
public function startAlipay() { $order_sn = $this->_get('order_sn'); $token = $this->_get('token'); Log::record($token . ':' . $order_sn); if (empty($order_sn) || empty($token)) { Log::record('startAlipay: ' . print_r($_GET, true)); Log::save(); $this->error('请输入订单号'); } $order = M('b2c_order')->where(array('sn' => $order_sn, 'token' => $token, 'status' => 1))->find(); if (!$order) { $this->error('订单号不正确'); } $shop = M('b2c_shop')->where(array('token' => $token))->find(); if (!$shop) { $this->error('商城不存在'); } $alipay = M('b2c_payment')->where(array('token' => $token, 'pay_code' => 'alipay'))->find(); $alipay_config = array(); if (is_string($alipay['pay_config'])) { $store = unserialize($alipay['pay_config']); $alipay_config['pay_account'] = $store['pay_account']; //合作身份者id,以2088开头的16位纯数字 $alipay_config['partner'] = $store['alipay_pid']; //安全检验码,以数字和字母组成的32位字符 //如果签名方式设置为“MD5”时,请设置该参数 $alipay_config['key'] = $store['alipay_key']; //商户的私钥(后缀是.pen)文件相对路径 //如果签名方式设置为“0001”时,请设置该参数 //$alipay_config['private_key_path'] = getcwd()."/Conf/Wap/key/".$shop['token']."_rsa_private_key.pem"; //支付宝公钥(后缀是.pen)文件相对路径 //如果签名方式设置为“0001”时,请设置该参数 //$alipay_config['ali_public_key_path']= getcwd().'/Conf/Wap/key/'.$shop['token'].'_alipay_public_key.pem'; //签名方式 不需修改 $alipay_config['sign_type'] = 'MD5'; //'0001'; //字符编码格式 目前支持 gbk 或 utf-8 $alipay_config['input_charset'] = 'utf-8'; //ca证书路径地址,用于curl中ssl校验 //请保证cacert.pem文件在当前文件夹目录中 $alipay_config['cacert'] = getcwd() . '\\Conf\\Wap\\key\\cacert.pem'; //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http $alipay_config['transport'] = 'http'; } Log::record('alipay_config Args:' . print_r($alipay_config, true), Log::INFO); //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = C('site_url') . '/index.php/alipay/notify'; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = C('site_url') . '/index.php/alipay/return_url'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 $merchant_url = "http://" . $shop['token'] . ".shop.weixinwz.com/"; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 $seller_email = trim($alipay_config['pay_account']); //必填 //商户订单号 $out_trade_no = $order['sn']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = '订单' . $order['sn'] . '支付'; //必填 //付款金额 $total_fee = $order['price']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); Log::record('para_token Args:' . print_r($para_token, true), Log::INFO); $trade = M('b2c_trade')->where(array('order_sn' => $order_sn, 'token' => $shop['token']))->find(); if ($trade == null) { $time = time(); $data = array('subject' => $subject, 'name' => $order['truename'], 'order_sn' => $out_trade_no, 'price' => $total_fee); $data['create_time'] = $time; $data['update_time'] = $time; $data['token'] = $shop['token']; $ret = M('b2c_trade')->data($data)->add(); } else { if ($trade['trade_no']) { $this->error('已支付'); } } import("@.ORG.AliWapPay.AlipaySubmit"); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; Log::record('token:' . print_r($para_html_text, true), Log::INFO); /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); Log::record('AliWapPay Args:' . print_r($parameter, true), Log::INFO); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', 'Start to pay'); echo $html_text; }
//支付宝交易号 $trade_no = $_POST['WIDtrade_no']; //必填 //物流公司名称 $logistics_name = $_POST['WIDlogistics_name']; //必填 //物流发货单号 $invoice_no = $_POST['WIDinvoice_no']; //物流运输类型 $transport_type = $_POST['WIDtransport_type']; //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS) /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($instance->config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($instance->config['input_charset']))); }); //建立请求 $alipaySubmit = new AlipaySubmit($pay->config); $html_text = $alipaySubmit->buildRequestHttp($pay->param); //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //解析XML if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue; echo $alipay; } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
//必填 //付款金额 $pay_price = $pay['total_fee']; //商户订单号 $out_trade_no = $pay['out_trade_no']; $total_fee = $pay['total_fee']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>'; //必填 /************************************************************/ //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //print_r($parameter); exit; //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config);
public function orderWapPay($orderGlideId) { $orderPayGlideService = utils::getService('orderPayGlide'); $orderGlideInfo = $orderPayGlideService->find($orderGlideId); $alipay_config = utils::c('aliwappay'); $format = "xml"; $v = "2.0"; $req_id = date('Ymdhis'); $notify_url = utils::c('siteUrl') . '/mobile/order/ali-pay-notify'; $call_back_url = utils::c('siteUrl') . '/mobile/order/ali-pay-back'; $merchant_url = utils::c('siteUrl') . '/mobile/order'; $out_trade_no = $orderGlideInfo['glide_nums']; $subject = '宅配订单' . $orderGlideInfo['glide_nums']; $total_fee = $orderGlideInfo['total']; $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); $html_text = urldecode($html_text); $para_html_text = $alipaySubmit->parseResponse($html_text); $request_token = $para_html_text['request_token']; $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); $alipaySubmit = new AlipaySubmit($alipay_config); $htmlText = $alipaySubmit->buildRequestForm($parameter, 'get', '支付宝支付'); return $htmlText; }
function pay_order() { $order_sn = $this->uri->segment(3); require_once "walipay/alipay.config.php"; require_once "walipay/lib/alipay_submit.class.php"; $alipay_config_temp = $this->tickets->select('payment', array('name' => 'alipay')); $alipay_con = $alipay_config_temp[0]; /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/ //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //操作中断返回地址 $merchant_url = base_url() . "mobile_return_url.php"; //用户付款中途退出返回商户的地址。需http://格 $notify_url = base_url() . "wechat/notify_url"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = base_url() . "return_url.php"; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ $o = $this->tickets->select('orders', array('to_order_sn' => $order_sn)); //卖家支付宝帐户 $seller_email = $alipay_con->payname; //'*****@*****.**'; //必填 //商户订单号 $out_trade_no = $order_sn; //商户网站订单系统中唯一订单号,必填 $req_id = date('Ymdhis'); $this->tickets->update('orders', array('to_alipay_sn' => $req_id), array('to_order_sn' => $order_sn)); //订单名称 $subject = $o[0]->to_receiver . '新订单'; //付款金额 $total_fee = $o[0]->to_order_amount; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //必填 /************************************************************/ $alipay_config['partner'] = $alipay_con->app_id; $alipay_config['key'] = $alipay_con->app_secret; //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); $data['text'] = $html_text; $this->load->view('main/pay_channel', $data); }
public function aliPay(Request $request) { require_once app_path() . "/Tool/Alipay/alipay.config.php"; require_once app_path() . "/Tool/Alipay/lib/alipay_submit.class.php"; //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_notify'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_result'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php //操作中断返回地址 $merchant_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_merchant'; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 $seller_email = '*****@*****.**'; //必填 //商户订单号 $out_trade_no = $_POST['order_no']; //商户网站订单系统中唯一订单号,必填 Log::info('out_trade_no:' . $out_trade_no); //订单名称 $subject = $_POST['name']; //必填 //付款金额 $total_fee = $_POST['total_price']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //必填 /************************************************************/ //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new \AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new \AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); return $html_text; }
public function payMoney() { $order_no = I('order_no'); if (!$order_no) { $this->apiError(0, "未知的订单号"); } require_once "Data/alipay/pay/alipay.config.php"; require_once "Data/alipay/pay/lib/alipay_submit.class.php"; $ali_partner = C('ALIPAY_PARTNER'); $ali_key = C('ALIPAY_KEY'); if ($ali_partner) { $alipay_config['partner'] = $ali_partner; } if ($ali_key) { $alipay_config['key'] = $ali_key; } /**************************请求参数**************************/ $map['order_no'] = $order_no; $info = M('user_order_money')->where($map)->find(); if (!$info || $info['type'] != 'coin') { $this->apiError(0, "未知的订单"); } if ($info['status'] == 2) { $this->apiError(0, "已支付"); } /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "create_forex_trade_wap", "partner" => trim($alipay_config['partner']), "_input_charset" => trim(strtolower($alipay_config['input_charset'])), "notify_url" => 'http://fille.wbteam.cn/index.php/Api/Pay/server_callback', "out_trade_no" => $order_no, "currency" => 'USD', "subject" => "购买" . $info['coin'] . "信用豆", "total_fee" => round($info['money'], 2)); //建立请求 $alipaySubmit = new \AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //解析XML if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue; echo $alipay; } echo 1; die; }
function ali_pay() { import('@.ORG.Alipay.alipay_submit'); $args = func_get_args(); if (!$args[0] || !$args[1] || !$args[2]) { //0订单编号,商品描述,2订单金额, return false; } $path = C('Alipay_path'); $config = (require $_SERVER['DOCUMENT_ROOT'] . $path . "config.php"); //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/notify_url.php'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/call_back.php'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 $merchant_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/call_back.php'; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //商户订单号 $out_trade_no = $args[0]; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $args[1]; //必填 //付款金额 $total_fee = $args[2]; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //必填 //var_dump($req_data);die(); /************************************************************/ //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); echo $html_text; }
public function wapalipay() { vendor('Malipay.alipay_submit', '', '.class.php'); $alipay_config = $this->wapalipay_config; $order = $this->order; //返回格式 $format = "xml"; $v = "2.0"; $req_id = date('Ymdhis'); $notify_url = C('site_url') . '/index.php/Wap/Pay/wapalipay_notify_url'; $call_back_url = C('site_url') . '/index.php/Wap/Pay/wapalipay_call_back_url'; $seller_email = $alipay_config['seller_email']; $out_trade_no = $order['orderid']; $subject = $order['ordername']; $total_fee = $order['price']; //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>'; //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正确为您跳转到支付宝支付界面!'); echo '正在跳转到支付宝进行支付...<div style="display:none">' . $html_text . '</div>'; }
/** * Change order status to WAIT_BUYER_CONFIRM_GOODS * * @param string $trade_no * @param bool $force_send_goods * @param bool $require_shipping * @since 1.3 * @return string */ function send_goods_confirm($trade_no, $order, $force_send_goods = false, $require_shipping = false) { if (empty($trade_no)) { return 'error: ' . __('Trade No. is not provided.', 'alipay'); } else { if (!function_exists('curl_version')) { return 'error: ' . __('cURL is not installed on this server', 'alipay'); } } // Decide if goodes need to be send automatically if (!in_array($order->status, array('pending', 'failed', 'on-hold'))) { $send_goods = false; if ($force_send_goods) { $send_goods = true; } else { if (sizeof($order->get_items()) > 0) { foreach ($order->get_items() as $item) { if ($item['product_id'] > 0) { $_product = $order->get_product_from_item($item); if (false !== $_product && ($_product->is_downloadable() && $_product->is_virtual())) { $send_goods = true; continue; } } $send_goods = false; break; } } } } if (!$send_goods) { return false; } // Send requrest to alipay require_once "lib/alipay_submit.class.php"; if (!$require_shipping) { $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => $this->partnerID, "trade_no" => $trade_no, "logistics_name" => 'ZJS', "transport_type" => 'DIRECT', "_input_charset" => $this->charset); } else { // Develop function of sending non-digital goods from WordPress backend // Currently this part is not used. } $alipay_config = $this->get_alipay_config(); $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); if (!empty($html_text)) { $doc = new DOMDocument(); $doc->loadXML($html_text); $success = $doc->getElementsByTagName('is_success'); if ($success->item(0)->nodeValue == 'F') { // Failed to update status $error = $doc->getElementsByTagName('error'); return 'error: ' . $error->item(0)->nodeValue; } else { return true; } } else { return 'Error: Request Failed'; } }
function alipay_code() { require_once "qalipay/alipay.config.php"; require_once "qalipay/lib/alipay_submit.class.php"; $alipay_config_temp = $this->tickets->select('payment', array('name' => 'alipay')); $alipay_con = $alipay_config_temp[0]; //接口调用时间 $timestamp = date('Y-m-d h:i:s'); //格式为:yyyy-MM-dd HH:mm:ss //动作 $method = "add"; //创建商品二维码 //业务类型 $biz_type = "10"; //目前只支持1 //业务数据 $biz_data_temp = array('trade_type' => '1', 'need_address' => 'F', 'goods_info' => array('id' => '3'), 'return_url' => base_url() . "return_url.php", 'notify_url' => $notify_url = base_url() . "wechat/code_notify_url", 'show_url' => 'http://www.xiaoshuhaochi.com'); $biz_data = json_encode($biz_data_temp); //格式:JSON 大字符串,详见技术文档4.2.1章节 //echo '<pre>';print_r($biz_data);exit; /************************************************************/ $alipay_config['partner'] = $alipay_con->app_id; $alipay_config['key'] = $alipay_con->app_secret; //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.mobile.qrcode.manage", "partner" => trim($alipay_config['partner']), "timestamp" => $timestamp, "method" => $method, "biz_type" => $biz_type, "biz_data" => $biz_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); echo '<pre>'; print_r($parameter); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); print_r($html_text); exit; //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //解析XML if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue; echo $alipay; } }
{"sku_id":"002", "sku_name":"薯条", "sku_price":"9.00", "sku_inventory":"500"}] }, "need_address":"F", "trade_type":"1", }'; //格式:JSON 大字符串,详见技术文档4.2.1章节 /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.mobile.qrcode.manage", "partner" => trim($alipay_config['partner']), "timestamp" => $timestamp, "method" => $method, "biz_type" => $biz_type, "biz_data" => $biz_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); var_dump($html_text); //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //解析XML if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue; echo $alipay; } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ?>
/** * 支付宝 * @param unknown_type $order_no * @param unknown_type $money 单位(元) * @param unknown_type $typeId 一级支付方式 * @param unknown_type $typeCode 二级支付方式NO */ public static function alipay($order_no, $money, $desc, $typeId = '', $typeCode = '') { $base_path = SIMPHP_ROOT . '/incs/libs/alipay/'; require_once $base_path . "alipay.config.php"; require_once $base_path . "lib/alipay_submit.class.php"; /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/ //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = $order_no; //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = $alipay_config['notify_url']; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = $alipay_config['return_url']; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 $merchant_url = $alipay_config['merchant_url']; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 $seller_email = $alipay_config['seller_email']; //必填 //商户订单号 $out_trade_no = $order_no; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $desc; //必填 //付款金额 $total_fee = $money; //单位(元) //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //必填 /************************************************************/ //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '跳转中...'); //header('Content-type: text/html; charset=utf-8'); return $html_text; }
/** * Action: Seller send goods with express * @return Response */ public function sendGoods() { // Get all form data. $data = Input::all(); $rules = array('id' => 'required', 'express_name' => 'required', 'invoice_no' => 'required'); // Custom validation message $messages = array('express_name.required' => '请填写物流公司名称', 'invoice_no.required' => '请填写物流单号'); // Begin verification $validator = Validator::make($data, $rules, $messages); if ($validator->passes()) { $product_order = $this->model->find(Input::get('id')); $product_order->is_express = true; $product_order->express_name = Input::get('express_name'); $product_order->invoice_no = Input::get('invoice_no'); // Alipay Dualfun API require_once app_path('api/alipay/alipay.config.php'); require_once app_path('api/alipay/lib/alipay_submit.class.php'); $trade_no = $this->model->where('id', Input::get('id'))->first()->alipay_trade; // Alipay trade number (required) $logistics_name = Input::get('express_name'); // Express company name (required) $invoice_no = Input::get('invoice_no'); // Express billing number $transport_type = "EXPRESS"; // Express type: POST, EXPRESS or EMS // Constructs an array of arguments to request, no need to change $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); // Establishment request $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); $doc = new DOMDocument(); $doc->loadXML($html_text); $product_order->save(); return Redirect::back()->with('success', '<strong>发货成功!等待对方确认收货。</strong>'); } else { return Redirect::back()->withInput()->withErrors($validator); } }
public function action_alipay() { $GLOBALS['cfg_alipay_pid'] = Common::getSysConf('value', 'cfg_alipay_pid', 0); //pid $GLOBALS['cfg_alipay_key'] = Common::getSysConf('value', 'cfg_alipay_key', 0); //key $GLOBALS['cfg_alipay_account'] = Common::getSysConf('value', 'cfg_alipay_account', 0); //帐号 include PUBLICPATH . '/thirdpay/alipay/alipay.config.php'; include PUBLICPATH . '/thirdpay/alipay/lib/alipay_submit.class.php'; /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/ //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = $GLOBALS['cfg_basehost'] . "/shouji/thirdpay/alipay_notifyurl"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = $GLOBALS['cfg_basehost'] . "/shouji/thirdpay/alipay_backurl"; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 $merchant_url = "http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/xxxx.php"; //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 $seller_email = $GLOBALS['cfg_alipay_account']; //必填 //商户订单号 $out_trade_no = $_POST['ordersn']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $_POST['subject']; //必填 //付款金额 $total_fee = $_POST['price']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); echo $html_text; }
public function dopay() { if (!$this->token) { echo 'token不能为空'; exit; } if (!$this->order) { $name = "Product"; $back = U($name . "/my", array('token' => $this->token, 'wecha_id' => $this->wecha_id)); $this->error('订单不能为空', U($name . $back)); } $order = $this->order; $product = $this->product; $alipay_config = $this->alipay_config; //返回格式 $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //服务器异步通知页面路径 $notify_url = C('site_url') . '/api/malipay/notify_url.php'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = C('site_url') . '/api/malipay/call_back_url.php'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 //$seller_email = $_POST['WIDseller_email']; $seller_email = $this->pay_m_alipay_config['name']; //必填 //商户订单号 //$out_trade_no = $_POST['WIDout_trade_no']; $out_trade_no = $order['sn']; //商户网站订单系统中唯一订单号,必填 //订单名称 //$subject = $_POST['WIDsubject']; $subject = $product['name']; //必填 //付款金额 //$total_fee = $_POST['WIDtotal_fee']; $total_fee = $order['price']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>'; //必填 /************************************************************/ //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正确为您跳转到支付宝支付界面!'); echo $html_text; }
public function send() { import("@.ORG.Alipay.AlipaySubmit"); //计算得出通知验证结果 $alipaySubmit = new AlipaySubmit($this->setconfig()); $html_text = $alipaySubmit->buildRequestHttp($parameter); //支付宝交易号 $trade_no = $this->_get('WIDtrade_no'); //必填 //物流公司名称 $logistics_name = '韵达快运'; //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS) /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); M('Indent')->where(array('id' => $this->_get('id')))->setField('status', 3); if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue; echo $alipay; } }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function get_code($order, $payment) { if (!defined('EC_CHARSET')) { $charset = 'utf-8'; } else { $charset = EC_CHARSET; } $alipay_config = array(); $alipay_config['partner'] = $payment['alipay_partner']; //安全检验码,以数字和字母组成的32位字符 //如果签名方式设置为“MD5”时,请设置该参数 $alipay_config['key'] = $payment['alipay_key']; //商户的私钥(后缀是.pen)文件相对路径 //如果签名方式设置为“0001”时,请设置该参数 //$alipay_config['private_key_path'] = 'key/rsa_private_key.pem'; //支付宝公钥(后缀是.pen)文件相对路径 //如果签名方式设置为“0001”时,请设置该参数 // $alipay_config['ali_public_key_path']= 'key/alipay_public_key.pem'; //签名方式 不需修改 $alipay_config['sign_type'] = 'MD5'; //字符编码格式 目前支持 gbk 或 utf-8 $alipay_config['input_charset'] = 'utf-8'; $alipay_config['cacert'] = ''; // $alipay_config['cacert'] = ROOT_PATH .'mobile/includes/modules/cacert.pem'; //ca证书路径地址,用于curl中ssl校验 //请保证cacert.pem文件在当前文件夹目录中 //$alipay_config['cacert'] = getcwd().'\\cacert.pem'; //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http $alipay_config['transport'] = 'http'; require_once ROOT_PATH . "includes/modules/lib/alipay_submit.class.php"; $format = "xml"; //必填,不需要修改 //返回格式 $v = "2.0"; //必填,不需要修改 //请求号 $req_id = date('Ymdhis'); //必填,须保证每次请求都是唯一 //**req_data详细信息** //服务器异步通知页面路径 $notify_url = $GLOBALS['hhs']->url() . 'alipay/notify_url.php'; //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 $call_back_url = $GLOBALS['hhs']->url() . 'alipay/alipay.php'; $seller_email = $payment['alipay_account']; //必填 //商户订单号 $out_trade_no = $order['order_sn'] . time(); //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $order['order_sn']; //必填 //付款金额 $total_fee = $order['order_amount']; //必填 //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>'; //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //URLDECODE返回的信息 $html_text = urldecode($html_text); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //获取request_token $request_token = $para_html_text['request_token']; /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 //构造要请求的参数数组,无需改动 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "v" => $v, "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认'); //var_dump($html_text); return $html_text; return $html_text; }
public function doalipayWap() { //echo "<pre>";var_dump( $_SERVER );echo "</pre>"; //返回格式 $format = "xml"; //必填,不需要修改//返回格式 $v = "2.0"; //这里我们通过TP的C函数把配置项参数读出,赋给$alipay_config; $alipay_config = C('alipay_config'); /**************************请求参数**************************/ $payment_type = C('alipay_config.sign_type'); //支付类型 //必填,不能修改 $notify_url = C('alipay.notify_urlWap'); //服务器异步通知页面路径 $return_url = C('alipay.return_urlWap'); //页面跳转同步通知页面路径 $merchant_url = C('alipay.merchant_urlWap'); //操作中断返回地址 $seller_email = C('alipay.seller_email'); //卖家支付宝帐户必填 $out_trade_no = $_POST['trade_no']; //商户订单号 通过支付页面的表单进行传递,注意要唯一! $subject = $_POST['ordsubject']; //订单名称 //必填 通过支付页面的表单进行传递 $total_fee = $_POST['ordtotal_fee']; //付款金额 //必填 通过支付页面的表单进行传递 $body = $_POST['ordbody']; //订单描述 通过支付页面的表单进行传递 $show_url = $_POST['ordshow_url']; //商品展示地址 通过支付页面的表单进行传递 $anti_phishing_key = ""; //防钓鱼时间戳 //若要使用请调用类文件submit中的query_timestamp函数 //$exter_invoke_ip = get_client_ip();//var_dump($exter_invoke_ip);die(); //客户端的IP地址 $exter_invoke_ip = $_SERVER["REMOTE_ADDR"]; //var_dump($exter_invoke_ip);die(); //客户端的IP地址 /************************************************************/ //对前台传过来的价钱数据做判断 $orderId = $out_trade_no; $oOb = M("order"); $orderArr = $oOb->field("count(*) as num")->where("orderId='{$orderId}'")->select(); $num = $orderArr[0]['num']; if ($num == 0) { $coOb = M("cardorder"); $arr = $coOb->where("orderId='{$orderId}'")->select(); //var_dump($arr); $realPrice = $arr[0]['price'] - $arr[0]['discount'] - $arr[0]['yhqPrice']; //var_dump($total_fee); var_dump($realPrice); die; if ($total_fee != $realPrice) { header("location:index.php?m=Member&a=payFail"); } } else { $arr = $oOb->where("orderId='{$orderId}'")->select(); $realPrice = $arr[0]['price'] - $arr[0]['discount'] - $arr[0]['yhq']; if ($total_fee != $realPrice) { header("location:index.php?m=Member&a=payFail"); } } $call_back_url = $return_url; //请求业务参数详细 $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>'; //echo "req_data";var_dump($req_data);echo "----------------------------------"; //必填 //构造要请求的参数数组,无需改动 $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => $payment_type, "format" => $format, "v" => $v, "req_id" => $out_trade_no, "req_data" => trim($req_data), "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //echo "<pre>";var_dump($para_token);echo "</pre>";die(); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token); //var_dump($html_text);die(); //URLDECODE返回的信息 $html_text = urldecode($html_text); //echo "<pre>";var_dump($html_text);echo "</pre>";die(); //解析远程模拟提交后返回的信息 $para_html_text = $alipaySubmit->parseResponse($html_text); //var_dump($para_html_text);die; //获取request_token $request_token = $para_html_text['request_token']; //var_dump($request_token); /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/ //业务详细 $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>'; //必填 $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => $payment_type, "format" => $format, "v" => $v, "req_id" => $out_trade_no, "req_data" => trim($req_data), "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //var_dump($parameter);die(); $parameter1 = paraFilter($parameter); $parameter2 = argSort($parameter); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $mysign = $alipaySubmit->buildRequestMysign($parameter2); $parameter2['sign'] = $mysign; //echo "<pre>";var_dump($parameter2);echo "</pre>";die(); $html_text = $alipaySubmit->buildRequestForm($parameter2, "get", "确认"); echo $html_text; }