AlipaySubmit::buildRequestForm PHP Method

buildRequestForm() public method

建立请求,以表单HTML形式构造(默认)
public buildRequestForm ( $para_temp, $method, $button_name ) : 提交表单HTML文本
$para_temp 请求参数数组
$method 提交方式。两个值可选:post、get
$button_name 确认按钮显示文字
return 提交表单HTML文本
    function buildRequestForm($para_temp, $method, $button_name)
    {
        //待请求参数数组
        $para = $this->buildRequestPara($para_temp);
        $sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='" . $this->alipay_gateway_new . "_input_charset=" . trim(strtolower($this->alipay_config['input_charset'])) . "' method='" . $method . "'>";
        while (list($key, $val) = each($para)) {
            $sHtml .= "<input type='hidden' name='" . $key . "' value='" . $val . "'/>";
        }
        //submit按钮控件请不要含有name属性
        //$sHtml = $sHtml."<input type='submit' value='".$button_name."'></form>";
        $sHtml .= "</form>";
        if (strpos(Yii::$app->request->userAgent, 'MicroMessenger') === false) {
            $sHtml .= "<script>document.forms['alipaysubmit'].submit();</script>";
        } else {
            $sHtml .= <<<HTML
<script type="text/javascript" src="/static/ap.js"></script>
<script>
var queryParam = '';
    
Array.prototype.slice.call(document.querySelectorAll("input[type=hidden]")).forEach(function (ele) {
    if(ele.name === 'req_data') {
        queryParam += ele.name + "=" + ele.value + '&';
    } else {
        queryParam += ele.name + "=" + encodeURIComponent(ele.value) + '&';
    }
});
var gotoUrl = '{$this->alipay_gateway_new}' + queryParam;
_AP.pay(gotoUrl);
</script>
HTML;
        }
        return $sHtml;
    }

Usage Example

Esempio n. 1
0
function alipay_link($params)
{
    #支付宝接口配置
    $type = $params['T'];
    $alipay_config['input_charset'] = 'utf-8';
    $alipay_config['sign_type'] = "MD5";
    $alipay_config['transport'] = $params['ssl'] ? "https" : "http";
    $alipay_config['partner'] = $params['partnerID'];
    $alipay_config['key'] = $params['security_code'];
    $alipay_config['seller_email'] = $params['seller_email'];
    $debug = $params["debug"];
    #系统变量
    $invoiceid = $params['invoiceid'];
    $description = $params["description"];
    $amount = $params['amount'];
    # Format: ##.##
    $currency = $params['currency'];
    # Currency Code
    $companyname = $params['companyname'];
    $systemurl = $params['systemurl'];
    $currency = $params['currency'];
    $alipay_config['return_url'] = $systemurl . "/modules/gateways/callback/alipay_return.php";
    $alipay_config['notify_url'] = $systemurl . "/modules/gateways/callback/alipay_callback.php";
    switch ($type) {
        case "1":
            $service_name = "create_direct_pay_by_user";
            break;
        case "2":
            $service_name = "create_partner_trade_by_buyer";
            break;
        case "3":
            $service_name = "trade_create_by_buyer";
            break;
        default:
    }
    //基本参数
    $parameter = array("service" => $service_name, "partner" => trim($alipay_config['partner']), "_input_charset" => trim(strtolower($alipay_config['input_charset'])), "return_url" => trim($alipay_config['return_url']), "sign_type" => trim($alipay_config['sign_type']), "notify_url" => trim($alipay_config['notify_url']));
    //业务参数
    $parameter["subject"] = "{$companyname} 订单[ {$invoiceid} ]";
    $parameter["body"] = $description;
    $parameter["out_trade_no"] = $invoiceid;
    $parameter["price"] = $amount;
    $parameter["quantity"] = "1";
    $parameter["payment_type"] = "1";
    $parameter["seller_email"] = trim($alipay_config['seller_email']);
    if ($type != "1") {
        $parameter["logistics_fee"] = "0";
        $parameter["logistics_type"] = "EXPRESS";
        $parameter["logistics_payment"] = "SELLER_PAY";
    }
    $img = $systemurl . "/modules/gateways/callback/alipay.png";
    $alipaySubmit = new AlipaySubmit($alipay_config);
    $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "确认");
    if ($debug) {
        $msg = "订单: {$invoiceid} 生成支付表单 {$html_text}";
        logResult($msg);
    }
    $code = $html_text . "</form><a href='#' onclick=\"document.forms['alipaysubmit'].submit();\"><img src='{$img}' alt='点击使用支付宝支付'> </a>";
    return $code;
}
All Usage Examples Of AlipaySubmit::buildRequestForm