一 进入蚂蚁金服开放平台,进入开发前必须要做的操作
(1) 申请成为开发者,成功之后创建应用
(2) 在应用信息中配置基础环境包括应用网关的设置以及授权回调地址(重要)
(3)选择加签方式,生成密钥对
二 选择文档中心,继而选择APP支付,下载App支付服务端DEMO
三 创建自己的支付接口,接口内容可以参考官方给的APP支付订单信息示例:
$aop = new AopClient; // 根据实例化类名去找到类所在的文件,并引入当前接口
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; // 支付宝网关
$aop->appId = "app_id"; // 应用ID
$aop->rsaPrivateKey = '请填写开发者私钥';
$aop->format = "json";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = '请填写支付宝公钥,一行字符串';
// 实例化具体API对应的request类,类名称和接口名称对应,找到类名对应的接口并引入当前接口
$request = new AlipayTradeAppPayRequest();
// SDK已经封装掉了公共参数,这里只需要传入业务参数,这里的变量可直接替换
$bizcontent = "{\"body\":\"我是测试数据\","
. "\"subject\": \"App支付测试\","
. "\"out_trade_no\": \"$out_trade_no\","
. "\"timeout_express\": \"30m\","
. "\"total_amount\": \"0.01\","
. "\"product_code\":\"QUICK_MSECURITY_PAY\""
. "}";
$request->setNotifyUrl("商户外网可以访问的异步地址");// 即第一步注册的回调地址
$request->setBizContent($bizcontent);
// 这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request); // 接下来就是将数据转化成自己需要的形式
四 完善回调接口内的内容(支付宝会把返回的参数以post的形式传过来,在该页面以$_POST形式接收就可以)
<?php
require_once "AopClient.php";
require_once('AlipayTradeAppPayRequest.php');
$aop = new AopClient;
$aop->alipayrsaPublicKey = '支付宝公钥';
//此处验签方式必须与下单时的签名方式一致
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
//验签通过后再实现业务逻辑,比如修改订单表中的支付状态。
/**
①验签通过后核实如下参数trade_status、out_trade_no、total_amount、seller_id
②修改订单表
**/
//打印success,应答支付宝。必须保证本界面无错误。只打印了success,否则支付宝将重复请求回调地址。(重要)
echo "success";
$trade_status = $_POST['trade_status'];
if($trade_status == "TRADE_SUCCESS"){
// 继续处理订单逻辑
}elseif($trade_status == "TRADE_FINISHED"){
// 继续处理订单逻辑
}
五 一定要在公网环境下或沙箱环境下测试