omnipay支付--支付寶支付

  最近負責的項目事關支付寶APP支付 也踩了一些坑? ?這邊記錄下

以下代碼基于laravel框架下:

?

生成APP支付參數:

    $gateway = $this->getGateway();$request = $gateway->purchase();$request->setBizContent(['subject'      => '',//產品描述'out_trade_no' => '',//本地訂單號'total_amount' => '',//支付金額 這里無需處理分位問題'product_code' => 'QUICK_MSECURITY_PAY',//銷售產品碼,商家和支付寶簽約的產品碼,為固定值
        ]);//發送請求$response = $request->send();//獲取支付路徑$orderString = $response->getOrderString();/**這里獲取的參數 傳給app前端由它去調用支付*/

?

回調處理:

官方文檔是這樣寫的:

$request = $gateway->completePurchase();
$request->setParams($request);/*** @var LegacyCompletePurchaseResponse $response*/
try {$response = $request->send();if($response->isPaid()){/*** Payment is successful*/die('success'); //The response should be 'success' only}else{/*** Payment is not successful*/die('fail');}
} catch (Exception $e) {/*** Payment is not successful*/die('fail');
}

然而我這樣寫后? 一直導致回調過來無法執行相應代碼? 看了下日志? 一直報函數錯誤? 說setParams參數有問題? ?無奈到處百度? 最后是在composer包里查看測試示例? 查看到這樣寫法:

$response = $gateway->completePurchase(['params' => $request])->send();

這樣改正以后 再不會報語法問題了? 回調也成功同步了?

順帶說一下,這里的isPaid方法里面的代碼是這樣的:

if (array_get($this->data, 'trade_status')) {if (array_get($this->data, 'trade_status') == 'TRADE_SUCCESS') {return true;} elseif (array_get($this->data, 'trade_status') == 'TRADE_FINISHED') {return true;} else {return false;}} elseif (array_get($this->data, 'code') == '10000') {return true;} else {return false;}

說明它已經驗證了支付狀態? 所以可以以此判斷是否支付成功.

?

查詢:

$options = ['out_trade_no' => $data['order_no']];//用本地訂單號查詢$options = ['trade_no' => $data['trade_no']];//支付寶訂單號查詢//查詢訂單
$request = $gateway->query();$request->setBizContent($options);$response = $request->send();//查詢成功獲取返回信息數據if($response->isSuccessful()) {return $response->getAlipayResponse();} else {return FALSE;}

這一段在github說明里是不存在的,是在tests\AopF2FGatewayTest類下testQuery方法才看到是這樣用的 醉了...

每次調用都是要創建相應的gateway(網關) 的,這里封裝成公用方法 創建網關的時候會指定支付方式。目前只做了App支付這一種 后續做其他的支付方式再記錄吧

轉載于:https://www.cnblogs.com/tudou1223/p/9758762.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279223.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279223.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279223.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4khz的帶寬是指什么意思_揚聲器和耳機的Hz-KHz范圍是什么意思?

4khz的帶寬是指什么意思If you’ve looked at high-end headphones or speakers, you’ve probably noticed numbers on the spec sheet that read something like “20Hz-20KHz.” What do these numbers mean? 如果您看過高端耳機或揚聲器,則可能已經注意到規格表…

mysql兩種引擎的適用場景_MySQL兩種引擎的區別和應用場景

Innodb引擎Innodb引擎提供了對數據庫ACID事務的支持,并且實現了SQL標準的四種隔離級別。該引擎還提供了行級鎖和外鍵約束,它的設計目標是處理大容量數據庫系統,它本身其實就是基于MySQL后臺的完整數據庫系統,MySQL運行時Innodb會在…

linux里查看最耗CPU的線程

1、top后按c查看最耗cpu的進程,得到pid 2、top -Hp pid 查看該進程里的線程資源使用情況,找到最耗資源的線程的pid 3、jstack pid來查看進程的各個線程棧,注意這里的pid是第一步中進程的pid,不是第二步得到的線程id 4、將第二步得…

vlc傳輸_如何使用VLC通過網絡流式傳輸視頻和音樂

vlc傳輸VLC includes a fairly easy-to-use streaming feature that can stream music and videos over a local network or the Internet. You can tune into the stream using VLC or other media players. VLC包括一個相當易于使用的流媒體功能,可以通過本地網絡…

python實現異步的幾種方式_終于搞明白了,異步Python比同步Python究竟快在哪里?...

大家好,你是否聽人們說過,異步 Python 代碼比“普通(或同步)Python 代碼更快? 果真是那樣嗎?同步和異步是什么意思?Web 應用程序通常要處理許多請求,這些請求在短時間內來自不同的客戶端。為避免處理延遲&a…

您可能沒有注意到的7個Ubuntu File Manager功能

The Nautilus file manager included with Ubuntu includes some useful features you may not notice unless you go looking for them. You can create saved searches, mount remote file systems, use tabs in your file manager, and more. Ubuntu隨附的Nautilus文件管理器…

P3174 [HAOI2009]毛毛蟲(樹形dp)

P3174 [HAOI2009]毛毛蟲 題目描述 對于一棵樹,我們可以將某條鏈和與該鏈相連的邊抽出來,看上去就象成一個毛毛蟲,點數越多,毛毛蟲就越大。例如下圖左邊的樹(圖 1 )抽出一部分就變成了右邊的一個毛毛蟲了&am…

wdcp mysql密碼_WDCP提示無法連接mysql及創建站點提示mysql密碼不正確

一、wdcp系統訪問提示無法連接mysql1、可能是mysql服務沒啟動,首先ssh登陸服務器,然后執行service mysqld restart重啟mysql再訪問試下,如果無法啟動,先用df -lh查看下home分區有沒有掛載,如果沒有掛載嘗試先重啟&…

applecare多少錢?_否,AppleCare +無法覆蓋丟失或被盜的iPhone

applecare多少錢?Losing your iPhone or getting it stolen is pretty common these days, but it’s important to know that while AppleCare covers accidental damage, it doesn’t cover a lost or stolen iPhone. 如今,丟失iPhone或使其被盜很普遍&#xff0…

10以內數的組成分解圖_大班數學教案《10以內數的組成》

大班數學教案《10以內數的組成》作為一名教學工作者,時常需要編寫教案,借助教案可以讓教學工作更科學化。那么什么樣的教案才是好的呢?以下是小編收集整理的大班數學教案《10以內數的組成》,希望能夠幫助到大家。大班數學教案《10…

HDFS文件目錄操作代碼

分布式文件系統HDFS中對文件/目錄的相關操作代碼,整理了一下,大概包括以下部分: 文件夾的新建、刪除、重命名文件夾中子文件和目錄的統計文件的新建及顯示文件內容文件在local和remote間的相互復制定位文件在HDFS中的位置,以及副本…

craigslist_如何設置Craigslist警報(用于電子郵件或SMS)

craigslistWhether you’re looking for apartments or used gadgets on Craigslist, you don’t have to keep checking the website. You can stay on top of things by getting notified when new posts go up that match your searches. 無論您是在Craigslist上尋找公寓還是…

merge r語言daframe_R語言總結

R語言總結數據框操作(plyr包)輔助小函數1 splat函數:作用:把原函數中多個參數打包為一個list作為參數,然后輸出新的函數。也就是說本來某個函數需要輸入多個參數,現在套上splat后,只要輸入一個參數list就可以了&#x…

Django模板語言中的自定義方法filter過濾器實現web網頁的瀑布流

模板語言自定義方法介紹 自定義方法注意事項 Django中有simple_tag 和 filter 兩種自定義方法,之前也提到過,需要注意的是 擴展目錄名稱必須是templatetagstemplatetags中的自定義標簽和過濾器必須依賴于一個django app,也就是說,自定義標簽和過濾器是綁…

dsp怪胎_2012年6月最佳怪胎文章

dsp怪胎This past month we covered topics such as why you only have to wipe a disk once to erase it, what RSS is and how you can benefit from using it, how websites are tracking you online, and more. Join us as we look back at the best articles for June. 在…

mysql 回退查詢_MYSQL數據庫表排序規則不一致導致聯表查詢,索引不起作用問題...

Mysql數據庫表排序規則不一致導致聯表查詢,索引不起作用問題表更描述: 將mysql數據庫中的worktask表添加ishaspic字段。具體操作:(1)數據庫worktask表新添是否有圖片字段ishaspic;新添字段時,報錯[SQL] alter table WorkTask add …

如何在Ubuntu上查看和寫入系統日志文件

Linux logs a large amount of events to the disk, where they’re mostly stored in the /var/log directory in plain text. Most log entries go through the system logging daemon, syslogd, and are written to the system log. Linux將大量事件記錄到磁盤上&#xff0c…

[轉]table中設置tr行間距

原文地址:https://blog.csdn.net/itmyhome1990/article/details/50475616 CSS border-collapse 屬性設置表格的邊框是否被合并為一個單一的邊框 值描述separate默認值。邊框會被分開。不會忽略 border-spacing 和 empty-cells 屬性。collapse如果可能,邊框會合并為一…

向Ubuntu提供反饋的5種方法

Ubuntu, like many other Linux distributions, is a community-developed operating system. In addition to getting involved and submitting patches, there are a variety of ways you can provide useful feedback and suggest features to Ubuntu. 與許多其他Linux發行版…

Tomcat 發布項目 conf/Catalina/localhost 配置 及數據源配置

本文介紹通過在tomcat的conf/Catalina/localhost目錄下添加配置文件,來發布項目。因為這樣對 tomcat 的入侵性最小,只需要新增一個配置文件,不需要修改原有配置;而且支持動態解析,修改完代碼直接生效(修改配置除外)。在…