function get_code($order, $payment) { global $_CFG; if (!is_array($order) || !is_array($payment)) { return false; } $partner = trim($payment['partnerid']); $key = trim($payment['ytauthkey']); $seller_email = trim($payment['parameter1']); $notify_url = $order['n_url']; $return_url = $order['v_url']; $show_url = $_CFG['site_domain'] . $_CFG['site_dir']; $mainname = $_CFG['site_name']; $sign_type = "MD5"; $_input_charset = "GBK"; $transport = "http"; $out_trade_no = $order['oid']; //请与贵网站订单系统中的唯一订单号匹配 $subject = "订单号:" . $out_trade_no; $body = $order['remark1']; $total_fee = intval($order['v_amount']); //扩展功能参数——默认支付方式 $pay_mode = $_POST['pay_bank']; if ($pay_mode == "directPay") { $paymethod = "directPay"; $defaultbank = ""; } else { $paymethod = "bankPay"; $defaultbank = $pay_mode; } $anti_phishing_key = ''; //防钓鱼时间戳 $exter_invoke_ip = ''; //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 $extra_common_param = ''; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 $buyer_email = ''; //默认买家支付宝账号 $royalty_type = ""; //提成类型,该值为固定值:10,不需要修改 $royalty_parameters = ""; $parameter = array("service" => "create_direct_pay_by_user", "payment_type" => "1", "partner" => $partner, "seller_email" => $seller_email, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "show_url" => $show_url, "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "total_fee" => $total_fee, "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "buyer_email" => $buyer_email, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters); $alipay = new alipay_service($parameter, $key, $sign_type); $sHtmlText = $alipay->build_form(); $sHtmlText .= "<input type=\"button\" class=\"but130lan intrgration_but\" value=\"确认支付\" onclick=\"document.forms['alipaysubmit'].submit()\"/>"; return $sHtmlText; }
$encrypt_key = query_timestamp($partner); $exter_invoke_ip = ''; //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 } //扩展功能参数——其他 $extra_common_param = ''; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 $buyer_email = ''; //默认买家支付宝账号 //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值) $royalty_type = ""; //提成类型,该值为固定值:10,不需要修改 $royalty_parameters = ""; //提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 //各分润金额的总和须小于等于total_fee //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2 //如: //royalty_type = "10" //royalty_parameters = "111@126.com^0.01^分润备注一|222@126.com^0.01^分润备注二" //扩展功能参数——自定义超时(若要使用,请按照注释要求的格式赋值) //该功能默认不开通, //申请开通方式:拨打0571-88158090申请或提交集成申请(https://b.alipay.com/support/helperApply.htm?action=consultationApply) //超时时间,不填默认是15天。设置范围:1m~15d。 m-分钟,h-小时,d-天,1c-当天(无论何时创建,交易都在0点关闭) $it_b_pay = ""; ///////////////////////////////////////////////// //构造要请求的参数数组,无需改动 $parameter = array("service" => 'create_direct_pay_by_user', "payment_type" => "1", "partner" => $partner, "seller_email" => $seller_email, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "show_url" => $show_url, "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "total_fee" => $total_fee, "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $encrypt_key, "exter_invoke_ip" => $exter_invoke_ip, "buyer_email" => $buyer_email, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters, "it_b_pay" => $it_b_pay); //构造请求函数 $alipay = new alipay_service($parameter, $key, $sign_type); $sHtmlText = $alipay->build_form();
/** * Process the payment and return the result **/ function process_payment($order_id) { global $woocommerce; require_once "alipay_config.php"; require_once "class/alipay_service.php"; $order = new WC_Order($order_id); if (sizeof($order->get_items()) > 0) { foreach ($order->get_items() as $item) { if ($item['qty']) { $item_names[] = $item['name'] . ' x ' . $item['qty']; } } } //扩展功能参数——默认支付方式 $paymethod = "directPay"; //默认支付方式,四个值可选:bankPay(网银); cartoon(卡通); directPay(余额); CASH(网点支付) $defaultbank = ""; //扩展功能参数——防钓鱼 //请慎重选择是否开启防钓鱼功能 //exter_invoke_ip、anti_phishing_key一旦被使用过,那么它们就会成为必填参数 //开启防钓鱼功能后,服务器、本机电脑必须支持远程XML解析,请配置好该环境。 //若要使用防钓鱼功能,请打开class文件夹中alipay_function.php文件,找到该文件最下方的query_timestamp函数,根据注释对该函数进行修改 //建议使用POST方式请求数据 $anti_phishing_key = ''; //防钓鱼时间戳 $exter_invoke_ip = ''; //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 //如: //$exter_invoke_ip = '202.1.1.1'; //$anti_phishing_key = query_timestamp($partner); //获取防钓鱼时间戳函数 //扩展功能参数——其他 $extra_common_param = ''; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 $buyer_email = ''; //默认买家支付宝账号 //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值) $royalty_type = ""; //提成类型,该值为固定值:10,不需要修改 $royalty_parameters = ""; //提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 //各分润金额的总和须小于等于total_fee //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2 //如: //royalty_type = "10" //royalty_parameters = "111@126.com^0.01^分润备注一|222@126.com^0.01^分润备注二" ///////////////////////////////////////////////// //构造要请求的参数数组,无需改动 $parameter = array("service" => "create_direct_pay_by_user", "payment_type" => "1", "partner" => $partner, "seller_email" => $seller_email, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "show_url" => get_bloginfo('wpurl'), "out_trade_no" => 'CIP' . $order_id, "subject" => implode(',', $item_names), "body" => implode(',', $item_names), "total_fee" => number_format($order->get_order_total() - $order->get_total_discount(), 2, '.', ''), "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "buyer_email" => $buyer_email, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters); //构造请求函数 $alipay = new alipay_service($parameter, $key, $sign_type); $sHtmlText = $alipay->build_form(); $html = "<html>\r\n\t\t\t<head>\r\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n\t\t\t\t<title>正在前往支付宝...</title>\r\n\t\t\t</head>\r\n\t\t\t<body><div style='display:none'>{$sHtmlText}</div"; echo $html; exit; return array('result' => 'success', 'redirect' => $sHtmlText); }
//获取客户端的IP地址,建议:编写获取客户端IP地址的程序 //如: //$exter_invoke_ip = '202.1.1.1'; //$anti_phishing_key = query_timestamp($partner); //获取防钓鱼时间戳函数 //扩展功能参数——其他 $extra_common_param = ''; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 $buyer_email = ''; //默认买家支付宝账号 //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值) $royalty_type = ""; //提成类型,该值为固定值:10,不需要修改 $royalty_parameters = ""; //提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 //各分润金额的总和须小于等于total_fee //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2 //如: //royalty_type = "10" //royalty_parameters = "111@126.com^0.01^分润备注一|222@126.com^0.01^分润备注二" ///////////////////////////////////////////////// //构造要请求的参数数组,无需改动 $parameter = array("service" => "create_direct_pay_by_user", "payment_type" => "1", "partner" => $GLOBALS['setting_cfg']['ALIPAY_PARTNER']['value'], "seller_email" => $GLOBALS['setting_cfg']['ALIPAY_SELLER_EMAIL']['value'], "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => 'utf-8', "show_url" => $url_base . '/', "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "total_fee" => $total_fee, "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "buyer_email" => $buyer_email, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters); //构造请求函数 $alipay = new alipay_service($parameter, $GLOBALS['setting_cfg']['ALIPAY_KEY']['value'], 'MD5'); $url = $alipay->build_form(); //die($url); //$sHtmlText = '<html><body><meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; header("Location:" . $url); die; //$sHtmlText .= '</body></html>'; //die($sHtmlText);