导读:thinkphp5.0整合支付宝支付,thinkphp5.0整合微信支付,移动app支付thinkphp5.0整合支付宝移动支付代码功能 实现app接入支付宝支付时,如...
thinkphp5.0整合支付宝支付,thinkphp5.0整合微信支付,移动app支付
thinkphp5.0整合支付宝移动支付代码功能 实现
app接入支付宝支付时,如果用户手机没有安装支付宝客户端,则会调用支付宝的移动支付h5页面。
如果安装了支付宝支付,则会唤醒支付宝客户端进行支付,用户提现最佳。
支付宝文档地址:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.Y4jDIe&treeId=59&articleId=103563&docType=1
所有的数据都在服务端进行组合,最后返回给客户端一个处理后的字符串。
生成的标准的字符串有提供:
partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="测试"&body="测试测试"&total_fee="0.01"¬ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&sign="lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D"&sign_type="RSA"
- function alipay_before(){
- $mid = $this->is_login();
- require_once EXTEND_PATH.'Alipay/alipaycore.php';
- require_once EXTEND_PATH.'Alipay/alipayrsa.php';
- $order_id = input("request.order_id");
- if($order_id == 0){
- ajaxmsg('非法数据',0);
- }
- $order_info = Db::name("order")->where("id={$order_id}")->find();
-
- $out_trade_no = $order_info['order_sn'];
- $total_fee = $order_info['total_price'] + $order_info['trans_price'];
- $body = '订单支付';
- $alipay_config = Config::get('alipay_config');
-
- $parameter = array(
- 'partner'=>$alipay_config['partner'],
- 'seller_id'=>$alipay_config['seller_id'],
- 'out_trade_no'=>$out_trade_no,
- 'subject'=>'订单支付',
- 'body'=>$body,
- 'total_fee'=>$total_fee,
- 'notify_url'=>$alipay_config['notify_url'],
- 'service'=>$alipay_config['service'],
- 'payment_type'=>$alipay_config['payment_type'],
- '_input_charset'=>$alipay_config['input_charset'],
- );
-
- $data = createLinkstring($parameter);
-
-
- logResult($data);
-
-
- $rsa_sign = urlencode(rsaSign($data, $alipay_config['private_key']));
-
-
- $data = $data.'&sign='.'"'.$rsa_sign.'"'.'&sign_type='.'"'.$alipay_config['sign_type'].'"';
-
-
-
- $list['form'] = $data;
- ajaxmsg('ok',1,$list);
- }
支付后通知接口:
- public function alipay_notify_url()
- {
- $alipay_config = Config::get('alipay_config');
-
- $alipayNotify = new Alipaynotify($alipay_config);
- if($alipayNotify->getResponse($_POST['notify_id']))
- {
- if($alipayNotify->getSignVeryfy($_POST, $_POST['sign'])) {
-
-
-
-
- $out_trade_no = $_POST['out_trade_no'];
-
-
- $trade_no = $_POST['trade_no'];
-
-
- $trade_status = $_POST['trade_status'];
-
- if($_POST['trade_status'] == 'TRADE_FINISHED') {
-
-
-
-
-
-
- }
- else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
- $order_info = Db::name("order")->where("order_sn='{$out_trade_no}'")->find();
- if($order_info['status'] == 0){
-
-
- Db::name("order")->where("id={$order_info['id']}")->save(
- array(
- 'pay_ways'=>2,
- "pay_sn"=>$trade_no,
- 'pay_time'=>time(),
- 'stauts'=>1
- ));
- $this->fenxiao_account($out_trade_no);
- }
- }
-
- echo "success";
- }
- else
- {
- echo "sign fail";
- }
- }
- else
- {
- echo "response fail";
- }
- }
-
Alipay.zip