本文介绍了Laravel使用支付宝进行支付的示例代码,分享给大家,也给自己留个笔记
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/*
支付
*/
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 ;
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/wpfphp/article/details/52604071