引入sdk包
public function __construct()
{
parent::__construct();
vendor('alipay.AopSdk');
}
/**
* 应用ID
*/
const APPID = 'xxxxx';
/**
* PID
*/
const PID = 'xxxxx';
/**
*请填写开发者私钥去头去尾去回车,一行字符串
*/
const RSA_PRIVATE_KEY = 'XXXXXXXX';
/**
*请填写支付宝公钥,一行字符串
*/
const ALIPAY_RSA_PUBLIC_KEY = 'XXXXXXXX';
/**
* 支付宝服务器主动通知商户服务器里指定的页面
* @var string
*/
private $callback = "xxxxxx";
/**
*生成APP支付订单信息
* @param string $orderId 商品订单ID
* @param string $subject 支付商品的标题
* @param string $body 支付商品描述
* @param float $pre_price 商品总支付金额
* @param int $expire 支付交易时间
* @param string $notify_url 通知地址
* @return bool|string 返回支付宝签名后订单信息,否则返回false
*/
public function unifiedorder($orderId, $subject,$body,$pre_price,$expire,$notify_url=NULL){
try{
$aop = new \AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = self::APPID;
$aop->rsaPrivateKey = self::RSA_PRIVATE_KEY;
$aop->format = "json";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = self::ALIPAY_RSA_PUBLIC_KEY;
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request = new \AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = "{\"body\":\"{$body}\"," //支付商品描述
. "\"subject\":\"{$subject}\"," //支付商品的标题
. "\"out_trade_no\":\"{$orderId}\"," //商户网站唯一订单号
. "\"timeout_express\":\"{$expire}\"," //该笔订单允许的最晚付款时间,逾期将关闭交易
. "\"total_amount\":\"{$pre_price}\"," //订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
. "\"product_code\":\"QUICK_MSECURITY_PAY\"" //APP支付使用这个
//. "\"product_code\":\"QUICK_WAP_WAY\"" //手机网站支付使用这个
. "}";
//判断通知地址
if(!$notify_url){
$notify_url = $this->callback;
}
$request->setNotifyUrl($notify_url);
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
return $response;//就是orderString 可以直接给客户端请求,无需再做处理。
}catch (\Exception $e){
return false;
}
}
/**
* 支付通知地址
*/
public function notice()
{
$aop = new \AopClient;
$aop->alipayrsaPublicKey = self::ALIPAY_RSA_PUBLIC_KEY;
//对通知结果进行验签
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
if($flag){
// TODO 验签成功后
//按照支付结果异步通知中的描述,对支付结果中的业务内容进行1\2\3\4二次校验,校验成功后在response中返回success,校验失败返回failure
//将赋值接收到的参数
$order = $_POST;
$map['goods_order_zfb_order_no'] = $order['out_trade_no'];//商户订单号
$goodsOrder = D('GoodsOrder')->getOne($map);
if(!$goodsOrder){//验证订单号是否是系统订单
echo 'failure';exit;
}
elseif($goodsOrder['goods_order_money'] != $order['total_amount']){//验证支付金额是否与订单金额相同
echo 'failure';exit;
}
elseif(self::PID != $order['seller_id']){//检验PID是否正确
echo 'failure';exit;
}
elseif(self::APPID != $order['app_id']){//检验APPID是否正确
echo 'failure';exit;
}
else{
//以log文件形式记录回调信息
$log_name= "./log/zfb/notify_url.log";//log文件路径
log_result($log_name,"【接收到的notify通知】:\n".json_encode($_POST)."\n");
if ($_POST["trade_status"] == "WAIT_BUYER_PAY") {
//此处应该更新一下订单状态,商户自行增删操作
log_result($log_name,"【交易创建,等待买家付款】:\n".json_encode($_POST)."\n");
}
elseif($_POST['trade_status'] == "TRADE_CLOSED"){
//此处应该更新一下订单状态,商户自行增删操作
log_result($log_name,"【未付款交易超时关闭,或支付完成后全额退款】:\n".json_encode($_POST)."\n");
}
elseif($_POST['trade_status'] == "TRADE_FINISHED"){
//此处应该更新一下订单状态,商户自行增删操作
log_result($log_name,"【交易结束,不可退款】:\n".json_encode($_POST)."\n");
}
elseif($_POST['trade_status'] == "TRADE_SUCCESS"){
//此处应该更新一下订单状态,商户自行增删操作
log_result($log_name,"【支付成功】:\n".json_encode($_POST)."\n");
echo 'success';
exit;
}
else{
log_result($log_name,"【订单状态参数错误】:\n".json_encode($_POST)."\n");
echo 'failure';
exit;
}
}
}else{
// TODO 验签失败则记录异常日志,并在response中返回failure.
echo 'failure';
exit;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
支付宝支付|APP|手机网站 (840个子文件)
source.iml 283B
.name 6B
AopClient.php 34KB
AlipaySecurityRiskDetectRequest.php 19KB
AlipayOpenMiniVersionAuditApplyRequest.php 12KB
TemplateView.php 12KB
AlipayAcquireCreateandpayRequest.php 11KB
AlipayOpenAgentZhimabriefSignRequest.php 9KB
AlipaySecurityInfoAnalysisRequest.php 9KB
DbTableDataGateway.php 8KB
Xml.php 8KB
AlipayAcquirePrecreateRequest.php 8KB
AlipayEbppPdeductSignAddRequest.php 8KB
AlipayOpenPublicLifeAgentCreateRequest.php 8KB
Pagination.php 7KB
Autoloader.php 7KB
CaptchaImageEngine.php 7KB
AlipayOpenPublicLifeMsgSendRequest.php 6KB
AlipayEbppBillAddRequest.php 6KB
AlipayOpenAgentFacetofaceSignRequest.php 6KB
AlipayOpenPublicLifeCreateRequest.php 5KB
AlipayOpenAgentMobilepaySignRequest.php 5KB
DbHandle.php 5KB
ZhimaMerchantCloseloopDataUploadRequest.php 5KB
AlipayTransferThirdpartyBillCreateRequest.php 5KB
AlipayMobilePublicMultiMediaClient.php 5KB
AlipayOpenPublicLifeAccountCreateRequest.php 5KB
AlipayOpenAgentMiniCreateRequest.php 5KB
AlipayEbppPdeductPayRequest.php 5KB
Action.php 5KB
AlipayOpenPublicLifeModifyRequest.php 5KB
AlipayUserTradeSearchRequest.php 5KB
AlipayMobilePublicInfoModifyRequest.php 4KB
Router.php 4KB
ZhimaDataBatchFeedbackRequest.php 4KB
AlipayAcquireRefundRequest.php 4KB
AlipayMobileCodeCreateRequest.php 4KB
DbConfigBuilder.php 4KB
DbConnectionManager.php 4KB
AlipayOpenMiniBaseinfoModifyRequest.php 4KB
AlipayZdatafrontDatatransferedFileuploadRequest.php 4KB
AlipayPassSyncUpdateRequest.php 4KB
AlipayEcapiprodDataPutRequest.php 4KB
AlipayMemberCouponQuerylistRequest.php 4KB
Validator.php 4KB
Lotus.php 4KB
AlipayPointOrderAddRequest.php 4KB
AlipayEbppPdeductSignCancelRequest.php 4KB
TestImage.php 4KB
AlipayOperatorMobileBindRequest.php 4KB
AlipayZdatafrontCommonQueryRequest.php 4KB
AlipayEbppBillSearchRequest.php 4KB
AlipayEcapiprodDrawndnRepaymentrecordQueryRequest.php 4KB
AlipayPassTplContentUpdateRequest.php 4KB
AlipayEcapiprodDrawndnFeerecordQueryRequest.php 4KB
AlipayEcapiprodDrawndnLendingrecordQueryRequest.php 3KB
AlipayMicropayOrderFreezeRequest.php 3KB
Url.php 3KB
SessionStoreSqlite.php 3KB
AlipayMobilePublicAccountResetRequest.php 3KB
AlipayMobilePublicAccountAddRequest.php 3KB
AlipayMicropayOrderConfirmpayurlGetRequest.php 3KB
AlipayPassTplContentAddRequest.php 3KB
AlipayMicropayOrderDirectPayRequest.php 3KB
AlipayEcardEduPublicBindRequest.php 3KB
AlipayPassCodeAddRequest.php 3KB
AlipayUserAccountSearchRequest.php 3KB
AlipayMobileRecommendGetRequest.php 3KB
AlipayEcapiprodDrawndnContractGetRequest.php 3KB
AlipayEcapiprodDrawndnPaymentscheduleGetRequest.php 3KB
AlipayEcapiprodDrawndnDrawndnlistQueryRequest.php 3KB
AlipayEcapiprodCreditGetRequest.php 3KB
AlipayAcquireCancelRequest.php 3KB
AlipayPointOrderGetRequest.php 3KB
AlipayPassFileAddRequest.php 3KB
AlipayOfflineMaterialImageUploadRequest.php 3KB
AlipayPassCodeVerifyRequest.php 3KB
Component.php 3KB
Cookie.php 3KB
AlipayPassSyncAddRequest.php 3KB
AlipayZdatafrontDatatransferedSendRequest.php 3KB
AlipaySystemOauthTokenRequest.php 2KB
DbSqlAdapterSqlite.php 2KB
AlipayAcquireCloseRequest.php 2KB
AlipayOfflineMarketingVoucherCodeUploadRequest.php 2KB
AlipayDataBillDownloadurlGetRequest.php 2KB
AlipayOfflineMarketShopPublicUnbindRequest.php 2KB
AlipayFlashsalesStockSyncUpdateRequest.php 2KB
StoreFile.php 2KB
AlipayMobilePublicMessageCustomSendRequest.php 2KB
AlipayOfflineMarketShopPublicBindRequest.php 2KB
AlipayUserFinanceinfoShareRequest.php 2KB
AlipayPromorulecenterRuleAnalyzeRequest.php 2KB
AlipayMobileBksigntokenVerifyRequest.php 2KB
AlipayOfflineMarketShopModifyRequest.php 2KB
AlipayAcquireQueryRequest.php 2KB
AlipayPassTplAddRequest.php 2KB
AlipaySecurityProdSignatureFileUploadRequest.php 2KB
AlipayEbppBillGetRequest.php 2KB
AlipayMobileShakeUserQueryRequest.php 2KB
共 840 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
晚丶礼服
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功