日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

支付宝APP支付 统一下单 php服务端 tp5

發(fā)布時間:2023/12/13 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付宝APP支付 统一下单 php服务端 tp5 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/*支付寶第三方支付

*
*生成APP支付訂單信息
* @param number  uid 用戶id
* @param string   token 用戶token
* @param number  oid 訂單id
* @param string   title 標題
* @param string    body 商品描述
* @parma float    money 金額
* @param number ordernum 訂單編號
*/
支付包官方文檔 https://docs.open.aliyun.com/54/106370/ public function zfb_pay() {
$data = input('post.');

Loader::import('/alipay/aop/AopClient',EXTEND_PATH);
$aop = new \AopClient();
$aop->appId = config("alipay_app_id");
$aop->rsaPrivateKey = config('alipay_private_key');
$aop->alipayrsaPublicKey = config('alipay_public_key');//對應(yīng)填寫
$aop->signType = "RSA2";
//實例化具體API對應(yīng)的request類,類名稱和接口名稱對應(yīng),當前調(diào)用接口名稱:alipay.trade.app.pay
Loader::import('/alipay/aop/request/AlipayTradeAppPayRequest',EXTEND_PATH);
$request = new \AlipayTradeAppPayRequest();
//SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù)
$bizcontent = json_encode(array(
'body' => $data['body'], //商品描述
'subject' => $data['title'], //支付的標題,
'out_trade_no' => $data['ordernum'], //支付寶訂單號必須是唯一的,只能生成一次
'total_amount' => $data['money'], //金額
"timeout_express" => "30m", //訂單支付有效時間 m分鐘 h小時
'product_code' => 'QUICK_MSECURITY_PAY'
));
$request->setNotifyUrl("http://tapi.zuozuobang.com/notifyurl");//你在應(yīng)用那里設(shè)置的異步回調(diào)地址
$request->setBizContent($bizcontent);
//這里和普通的接口調(diào)用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//htmlspecialchars是為了輸出到頁面時防止被瀏覽器將關(guān)鍵參數(shù)html轉(zhuǎn)義,實際打印到日志以及http傳輸不會有這個問題
/* echo htmlspecialchars($response);*///就是orderString 可以直接給客戶端請求,無需再做處理。
if($response){
return_msg('200','支付寶請求成功!',$response);
}else{
return_msg('100','支付請求失敗!',$response);
}
}

/*
* 支付寶支付回調(diào)
*/
public function notifyurl()
{

Loader::import('/alipay/aop/AopClient',EXTEND_PATH);
$aop = new \AopClient();
$aop->alipayrsaPublicKey =config('alipay_public_key');//對應(yīng)填寫
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
if ($flag) {
//校驗通知數(shù)據(jù)的正確性
$out_trade_no = $_POST['out_trade_no']; //商戶訂單號
$trade_no = $_POST['trade_no']; //支付寶交易號
$trade_status = $_POST['trade_status']; //交易狀態(tài)trade_status
$total_amount = $_POST['total_amount']; //訂單的實際金額
$order = Db::table("shfw_order")->where('ordernum', $out_trade_no)->find();
if ($order) {
//只有交易通知狀態(tài)為TRADE_SUCCESS或TRADE_FINISHED時,支付寶才會認定為買家付款成功。
if ($trade_status != 'TRADE_FINISHED' && $trade_status != 'TRADE_SUCCESS') {
return 'fail';
}
//2、判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創(chuàng)建時的金額);
if ($total_amount != $order['money']) {
return 'fail';
}
//校驗成功后在response中返回success,校驗失敗返回failure
$update = array(
'status' => '2', //修改支付狀態(tài)
'zhi_time' => time(), //添加支付時間
'pay_type' => 1); //添加支付類型
$result = Db::table("shfw_order")->where('ordernum', $out_trade_no)->update($update);
$res = Db::table("shfw_order")->where('ordernum', $out_trade_no)->field('id,mid,ordernum,nickname,addtime,pay_type')->find();
// $member = Db::table('shfw_member')->where('id',$res['mid'])->find();
//添加充值記錄
$res['payorder'] = $trade_no;
$res['money'] = $total_amount;
$addpay = $this->addpay($res);
if ($result && $addpay) {
return "success";
} else {
return 'fail';
}
} else {
exit('fail');
}
}
}

轉(zhuǎn)載于:https://www.cnblogs.com/Dgaozhen/p/9990753.html

總結(jié)

以上是生活随笔為你收集整理的支付宝APP支付 统一下单 php服务端 tp5的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。