使用Laravel怎么实现支付宝支付,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
/*
支付
*/
public function pay()
{
header("content-type:text/html;charset=utf8");
//echo 1;die;
// ******************************************************配置 start*************************************************************************************************************************
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//合作身份者id,以2088开头的16位纯数字
$alipay_config['partner'] = '合作身份者id';
//收款支付宝账号
$alipay_config['seller_email'] = '';
//安全检验码,以数字和字母组成的32位字符
$alipay_config['key'] = 'y8z1t3vey08bgkzlw78u9cbc4pizy2sj';
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//签名方式 不需修改
$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';
// ******************************************************配置 end*************************************************************************************************************************
// ******************************************************请求参数拼接 start*************************************************************************************************************************
$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://bw.com133.com/notify_url.php", // 服务器异步通知页面路径
"return_url" => "支付后跳转路径", // 页面跳转同步通知页面路径
"out_trade_no" => "订单号", // 商户网站订单系统中唯一订单号
"subject" => "", // 订单名称
"total_fee" => "0.01", // 付款金额
"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'];
// ******************************************************请求参数拼接 end*************************************************************************************************************************
// ******************************************************模拟请求 start*************************************************************************************************************************
$sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='https://mapi.alipay.com/gateway.do?_input_charset=utf-8' method='get'>";
foreach ($parameter as $k => $v) {
$sHtml.= "<input type='hidden' name='" . $k . "' value='" . $v . "'/>";
}
$sHtml = $sHtml."<script>document.forms['alipaysubmit'].submit();</script>";
// ******************************************************模拟请求 end*************************************************************************************************************************
echo $sHtml;
}
关于使用Laravel怎么实现支付宝支付问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。