PHP实现支付宝即时到账功能

2019-05-02 07:53:14王旭

PHP控制代码(其实就是把alipay.config和alipayapi代码集合在一起)

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/12/7 0007
 * Time: 下午 3:30
 */

namespace HomeController;
use ThinkController;
use VendorAlidayu;

class PayController extends Controller
{
 public function alipayapi() {
 Vendor('Alipay.Corefunction');
 Vendor('Alipay.Md5function');
 Vendor('Alipay.Notify');
 Vendor('Alipay.Submit');


/***************************请求参数******************************************/
 //商户订单号,商户网站订单系统中唯一订单号,必填
 $out_trade_no = $_POST['WIDout_trade_no'];

 //订单名称,必填
 $subject = $_POST['WIDsubject'];

 //付款金额,必填
 $total_fee = $_POST['WIDtotal_fee'];

 //商品描述,可空
 $body = $_POST['WIDbody'];



/*******************************构造配置来自alipay.config******************************************/
 //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
 $alipay_config['partner'] = '*******需要申请ID*****';//商户ID

//收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号
 $alipay_config['seller_id'] = $alipay_config['partner'];

// MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
 $alipay_config['key'] = '******需要申请KEY*********'; //商户KEY

// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类2088421713316394自定义参数,必须外网可以正常访问
 $alipay_config['notify_url'] = "http://商户网址/create_direct_pay_by_user-PHP-UTF-8/notify_url.php";

// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
 $alipay_config['return_url'] = "http://商户网址/create_direct_pay_by_user-PHP-UTF-8/return_url.php";

//签名方式
 $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';

// 支付类型 ,无需修改
 $alipay_config['payment_type'] = "1";

// 产品类型,无需修改
 $alipay_config['service'] = "create_direct_pay_by_user";

//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


//↓↓↓↓↓↓↓↓↓↓ 请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

// 防钓鱼时间戳 若要使用请调用类文件submit中的query_timestamp函数
 $alipay_config['anti_phishing_key'] = "";

// 客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1
 $alipay_config['exter_invoke_ip'] = "";

//↑↑↑↑↑↑↑↑↑↑请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

/****************************************************************************/
//构造要请求的参数数组,无需改动
 $parameter = array(
 "service" => $alipay_config['service'],
 "partner" => $alipay_config['partner'],
 "seller_id" => $alipay_config['seller_id'],
 "payment_type" => $alipay_config['payment_type'],
 "notify_url" => $alipay_config['notify_url'],
 "return_url" => $alipay_config['return_url'],

 "anti_phishing_key"=>$alipay_config['anti_phishing_key'],
 "exter_invoke_ip"=>$alipay_config['exter_invoke_ip'],
 "out_trade_no" => $out_trade_no,
 "subject" => $subject,
 "total_fee" => $total_fee,
 "body" => $body,
 "_input_charset" => trim(strtolower($alipay_config['input_charset']))
 //其他业务参数根据在线开发文档,添加参数.文档地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.kiX33I&treeId=62&articleId=103740&docType=1
 //如"参数名"=>"参数值"

 );

//建立请求
 $alipaySubmit = new AlipaySubmit($alipay_config);
 $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认");
 echo $html_text;

 }

}

								 
			 
相关文章 大家在看