亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) 微信小程式 微信開(kāi)發(fā) 使用EasyWechat快速開(kāi)發(fā)微信公眾號(hào)支付

使用EasyWechat快速開(kāi)發(fā)微信公眾號(hào)支付

Sep 14, 2017 am 09:58 AM
easywechat 開(kāi)發(fā)

前期準(zhǔn)備:

申請(qǐng)微信支付後, 會(huì)收到2個(gè)參數(shù), 商家id,和商家key.
注意,這2個(gè)參數(shù),不要和微信的參數(shù)混淆.
微信參數(shù): appid, appkey, token
支付參數(shù): merchant_id(商家號(hào)碼), key(支付金鑰)
支付金鑰怎麼得到?
到https://pay.weixin.qq.com -->帳戶中心--> API安全-->設(shè)定API金鑰
自行設(shè)定一個(gè)32位元的金鑰

#微信支付流程:

#1、composer安裝EasyWechat套件

環(huán)境需求:

  • PHP >= 5.5. 9

  • PHP cURL 擴(kuò)充

  • PHP OpenSSL 擴(kuò)充功能

安裝:

composer require overtrue/wechat:~3.1 -vvv

?2、大眾號(hào)配置2.1、設(shè)定支付目錄及授權(quán)網(wǎng)域名稱(chēng)

##2.2、設(shè)定網(wǎng)頁(yè)授權(quán)

#?

##?3、初始化SDK,建立一個(gè)?EasyWeChat\Foundation\Application?實(shí)例

<?php
use EasyWeChat\Foundation\Application;protected $app=null;public function construct(){   
$options = [   /**
     * Debug 模式,bool 值:true/false
     *
     * 當(dāng)值為 false 時(shí),所有的日志都不會(huì)記錄     */
    &#39;debug&#39;  => true,    /**
     * 賬號(hào)基本信息,請(qǐng)從微信公眾平臺(tái)/開(kāi)放平臺(tái)獲取     */
    &#39;app_id&#39;  => &#39;your-app-id&#39;,         // AppID
    &#39;secret&#39;  => &#39;your-app-secret&#39;,     // AppSecret
    &#39;token&#39;   => &#39;your-token&#39;,          // Token
    &#39;aes_key&#39; => &#39;&#39;,                    // EncodingAESKey,安全模式下請(qǐng)一定要填寫(xiě)?。?!

    /**
     * 日志配置
     *
     * level: 日志級(jí)別, 可選為:
     *         debug/info/notice/warning/error/critical/alert/emergency
     * permission:日志文件權(quán)限(可選),默認(rèn)為null(若為null值,monolog會(huì)取0644)
     * file:日志文件位置(絕對(duì)路徑!!!),要求可寫(xiě)權(quán)限     */
    &#39;log&#39; => [        &#39;level&#39;      => &#39;debug&#39;,
        &#39;permission&#39; => 0777,
        &#39;file&#39;       => &#39;/tmp/easywechat.log&#39;,
    ],    /**
     * OAuth 配置
     *
     * scopes:公眾平臺(tái)(snsapi_userinfo / snsapi_base),開(kāi)放平臺(tái):snsapi_login
     * callback:OAuth授權(quán)完成后的回調(diào)頁(yè)地址     */
    &#39;oauth&#39; => [        
            &#39;scopes&#39;   => [&#39;snsapi_userinfo&#39;],
        &#39;callback&#39; => &#39;/examples/oauth_callback.php&#39;,
    ],    /**
     * 微信支付     */
    &#39;payment&#39; => [        &#39;merchant_id&#39;        => &#39;your-mch-id&#39;,
        &#39;key&#39;                => &#39;key-for-signature&#39;,
        &#39;cert_path&#39;          => &#39;path/to/your/cert.pem&#39;, // XXX: 絕對(duì)路徑?。。?!
        &#39;key_path&#39;           => &#39;path/to/your/key&#39;,      // XXX: 絕對(duì)路徑?。。。?
        &#39;notify_url&#39;         => &#39;默認(rèn)的訂單回調(diào)地址&#39;,       // 你也可以在下單時(shí)單獨(dú)設(shè)置來(lái)想覆蓋它
        // &#39;device_info&#39;     => &#39;013467007045764&#39;,
        // &#39;sub_app_id&#39;      => &#39;&#39;,
        // &#39;sub_merchant_id&#39; => &#39;&#39;,
        // ...
    ],];$this->$app = new Application($options);
}
?4. 取得付款物件payment

$payment =$this->$app->payment;
?5、把訂單物件order(訂單號(hào)碼,金額,openid)以參數(shù)傳入

<?phpuse EasyWeChat\Foundation\Application;use EasyWeChat\Payment\Order; 

$attributes = [ &#39;trade_type&#39; => &#39;JSAPI&#39;, // JSAPI,NATIVE,APP... &#39;body&#39; => &#39;iPad mini 16G 白色&#39;, &#39;detail&#39; => &#39;iPad mini 16G 白色&#39;,
&#39;out_trade_no&#39; => &#39;1217752501201407033233368018&#39;,//訂單號(hào) &#39;total_fee&#39; => 5388, // 單位:分 &#39;notify_url&#39; => &#39;http://xxx.com/order-notify&#39;, // 支付結(jié)果通知網(wǎng)址,如果不設(shè)置則會(huì)使用配置里的默認(rèn)地址 &#39;openid&#39; => &#39;當(dāng)前用戶的 openid&#39;, // trade_type=JSAPI,此參數(shù)必傳,用戶在商戶appid下的唯一標(biāo)識(shí), // ... ]; $order = new Order($attributes);
?6.、預(yù)處理,得到一個(gè)預(yù)處理id, payment->prepare(order);

$result = $payment->prepare($order);
if ($result->return_code == &#39;SUCCESS&#39; && $result->result_code == &#39;SUCCESS&#39;){    
$prepayId = $result->prepay_id;
}
?7、產(chǎn)生支付JS配置

$json = $payment->configForPayment($prepayId); // 返回 json 字符串,如果想返回?cái)?shù)組,傳第二個(gè)參數(shù) false
?8、將把訂單號(hào)碼和json寫(xiě)入用戶確認(rèn)支付的模板中,觸發(fā)js,調(diào)起支付

return view(&#39;done&#39;,[&#39;order&#39;=>$ordersn,&#39;json&#39;=>$json]);
<script>$(&#39;form&#39;).submit (function() {
WeixinJSBridge.invoke(&#39;getBrandWCPayRequest&#39;, {!!$json!!},function(res){if(res.err_msg == "get_brand_wcpay_request:ok" ) {// 使用以上方式判斷前端返回,微信團(tuán)隊(duì)鄭重提示:
// res.err_msg將在用戶支付成功后返回
// ok,但并不保證它絕對(duì)可靠。          }
      }
);return false;
});</script>
?9、成功回調(diào)

在用戶成功付款後,微信伺服器會(huì)向該?訂單中設(shè)定的回呼URL?發(fā)起一個(gè)POST 請(qǐng)求,請(qǐng)求的內(nèi)容為一個(gè)XML。

先在中間件VerifyCsrfToken中設(shè)定paid方法無(wú)需走CSRF驗(yàn)證

###
   public function paid(){$response =$this->$app->payment->handleNotify(function($notify, $successful){    // 使用通知里的 "微信支付訂單號(hào)" 或者 "商戶訂單號(hào)" 去自己的數(shù)據(jù)庫(kù)找到訂單
    $order = 查詢訂單($notify->out_trade_no); 
    if (!$order) { // 如果訂單不存在
        return &#39;Order not exist.&#39;; // 告訴微信,我已經(jīng)處理完了,訂單沒(méi)找到,別再通知我了    }    // 如果訂單存在
    // 檢查訂單是否已經(jīng)更新過(guò)支付狀態(tài)
    if ($order->paid_at) { // 假設(shè)訂單字段“支付時(shí)間”不為空代表已經(jīng)支付
        return true; // 已經(jīng)支付成功了就不再更新了    }    // 用戶是否支付成功
    if ($successful) {        // 不是已經(jīng)支付狀態(tài)則修改為已經(jīng)支付狀態(tài)
        $order->paid_at = time(); // 更新支付時(shí)間為當(dāng)前時(shí)間
        $order->status = &#39;paid&#39;;
    } else { // 用戶支付失敗
        $order->status = &#39;paid_fail&#39;;
    }    $order->save(); // 保存訂單
    return true; // 返回處理完成});
    return $response;
}

以上是使用EasyWechat快速開(kāi)發(fā)微信公眾號(hào)支付的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
四款值得推薦的AI輔助程式工具 四款值得推薦的AI輔助程式工具 Apr 22, 2024 pm 05:34 PM

這個(gè)AI輔助程式工具在這個(gè)AI快速發(fā)展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設(shè)計(jì)工具能夠提升開(kāi)發(fā)效率、提升程式碼品質(zhì)、降低bug率,是現(xiàn)代軟體開(kāi)發(fā)過(guò)程中的重要助手。今天大姚給大家分享4款A(yù)I輔助程式工具(而且都支援C#語(yǔ)言),希望對(duì)大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款A(yù)I編碼助手,可幫助你更快、更省力地編寫(xiě)程式碼,從而將更多精力集中在問(wèn)題解決和協(xié)作上。 Git

AI程式設(shè)計(jì)師哪家強(qiáng)?探索Devin、通靈靈碼和SWE-agent的潛力 AI程式設(shè)計(jì)師哪家強(qiáng)?探索Devin、通靈靈碼和SWE-agent的潛力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距離世界首個(gè)AI程式設(shè)計(jì)師Devin誕生不足一個(gè)月,普林斯頓大學(xué)的NLP團(tuán)隊(duì)開(kāi)發(fā)了一個(gè)開(kāi)源AI程式設(shè)計(jì)師SWE-agent。它利用GPT-4模型在GitHub儲(chǔ)存庫(kù)中自動(dòng)解決問(wèn)題。 SWE-agent在SWE-bench測(cè)試集上的表現(xiàn)與Devin相似,平均耗時(shí)93秒,解決了12.29%的問(wèn)題。 SWE-agent透過(guò)與專(zhuān)用終端交互,可以開(kāi)啟、搜尋文件內(nèi)容,使用自動(dòng)語(yǔ)法檢查、編輯特定行,以及編寫(xiě)和執(zhí)行測(cè)試。 (註:以上內(nèi)容為原始內(nèi)容微調(diào),但保留了原文中的關(guān)鍵訊息,未超過(guò)指定字?jǐn)?shù)限制。)SWE-A

學(xué)習(xí)如何利用Go語(yǔ)言開(kāi)發(fā)行動(dòng)應(yīng)用程式 學(xué)習(xí)如何利用Go語(yǔ)言開(kāi)發(fā)行動(dòng)應(yīng)用程式 Mar 28, 2024 pm 10:00 PM

Go語(yǔ)言開(kāi)發(fā)行動(dòng)應(yīng)用程式教學(xué)隨著行動(dòng)應(yīng)用程式市場(chǎng)的不斷蓬勃發(fā)展,越來(lái)越多的開(kāi)發(fā)者開(kāi)始探索如何利用Go語(yǔ)言開(kāi)發(fā)行動(dòng)應(yīng)用程式。作為一種簡(jiǎn)潔高效的程式語(yǔ)言,Go語(yǔ)言在行動(dòng)應(yīng)用開(kāi)發(fā)中也展現(xiàn)了強(qiáng)大的潛力。本文將詳細(xì)介紹如何利用Go語(yǔ)言開(kāi)發(fā)行動(dòng)應(yīng)用程序,並附上具體的程式碼範(fàn)例,幫助讀者快速入門(mén)並開(kāi)始開(kāi)發(fā)自己的行動(dòng)應(yīng)用程式。一、準(zhǔn)備工作在開(kāi)始之前,我們需要準(zhǔn)備好開(kāi)發(fā)環(huán)境和工具。首

Go語(yǔ)言前端技術(shù)探秘:前端開(kāi)發(fā)新視野 Go語(yǔ)言前端技術(shù)探秘:前端開(kāi)發(fā)新視野 Mar 28, 2024 pm 01:06 PM

Go語(yǔ)言作為一種快速、高效的程式語(yǔ)言,在後端開(kāi)發(fā)領(lǐng)域廣受歡迎。然而,很少有人將Go語(yǔ)言與前端開(kāi)發(fā)聯(lián)繫起來(lái)。事實(shí)上,使用Go語(yǔ)言進(jìn)行前端開(kāi)發(fā)不僅可以提高效率,還能為開(kāi)發(fā)者帶來(lái)全新的視野。本文將探討使用Go語(yǔ)言進(jìn)行前端開(kāi)發(fā)的可能性,並提供具體的程式碼範(fàn)例,幫助讀者更了解這一領(lǐng)域。在傳統(tǒng)的前端開(kāi)發(fā)中,通常會(huì)使用JavaScript、HTML和CSS來(lái)建立使用者介面

五大熱門(mén)Go語(yǔ)言庫(kù)總表:開(kāi)發(fā)必備利器 五大熱門(mén)Go語(yǔ)言庫(kù)總表:開(kāi)發(fā)必備利器 Feb 22, 2024 pm 02:33 PM

五大熱門(mén)Go語(yǔ)言庫(kù)總結(jié):開(kāi)發(fā)必備利器,需要具體程式碼範(fàn)例Go語(yǔ)言自從誕生以來(lái),受到了廣泛的關(guān)注和應(yīng)用。作為一門(mén)新興的高效、簡(jiǎn)潔的程式語(yǔ)言,Go的快速發(fā)展離不開(kāi)豐富的開(kāi)源程式庫(kù)的支援。本文將介紹五大熱門(mén)的Go語(yǔ)言庫(kù),這些庫(kù)在Go開(kāi)發(fā)中扮演了至關(guān)重要的角色,為開(kāi)發(fā)者提供了強(qiáng)大的功能和便利的開(kāi)發(fā)體驗(yàn)。同時(shí),為了更好地理解這些庫(kù)的用途和功能,我們會(huì)結(jié)合具體的程式碼範(fàn)例進(jìn)行講

Android開(kāi)發(fā)最適合的Linux發(fā)行版是哪一個(gè)? Android開(kāi)發(fā)最適合的Linux發(fā)行版是哪一個(gè)? Mar 14, 2024 pm 12:30 PM

Android開(kāi)發(fā)是一項(xiàng)繁忙而又令人興奮的工作,而選擇適合的Linux發(fā)行版來(lái)進(jìn)行開(kāi)發(fā)則顯得尤為重要。在眾多的Linux發(fā)行版中,究竟哪一個(gè)最適合Android開(kāi)發(fā)呢?本文將從幾個(gè)方面來(lái)探討這個(gè)問(wèn)題,並給出具體的程式碼範(fàn)例。首先,我們來(lái)看看目前流行的幾個(gè)Linux發(fā)行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優(yōu)點(diǎn)和特點(diǎn)。

VSCode最適合哪種框架開(kāi)發(fā)? VSCode最適合哪種框架開(kāi)發(fā)? Mar 25, 2024 pm 02:03 PM

VSCode是一款功能強(qiáng)大、靈活、易於擴(kuò)充的開(kāi)源程式碼編輯器,廣受開(kāi)發(fā)者青睞。它支援眾多程式語(yǔ)言和框架,能夠滿足不同專(zhuān)案需求。但是,針對(duì)不同的框架,VSCode的優(yōu)勢(shì)可能有所不同。本文將討論VSCode在不同框架開(kāi)發(fā)中的適用性,並提供具體的程式碼範(fàn)例。 1.ReactReact是一款流行的JavaScript庫(kù),用於建立使用者介面。在使用React開(kāi)發(fā)專(zhuān)案時(shí),

全面指南:詳解Java虛擬機(jī)器安裝過(guò)程 全面指南:詳解Java虛擬機(jī)器安裝過(guò)程 Jan 24, 2024 am 09:02 AM

Java開(kāi)發(fā)必備:詳細(xì)解讀Java虛擬機(jī)器安裝步驟,需要具體程式碼範(fàn)例隨著電腦科學(xué)和技術(shù)的發(fā)展,Java語(yǔ)言已成為廣泛使用的程式語(yǔ)言之一。它具有跨平臺(tái)、物件導(dǎo)向等優(yōu)點(diǎn),逐漸成為開(kāi)發(fā)人員的首選語(yǔ)言。在使用Java進(jìn)行開(kāi)發(fā)之前,首先需要安裝Java虛擬機(jī)器(JavaVirtualMachine,JVM)。本文將詳細(xì)解讀Java虛擬機(jī)器的安裝步驟,並提供具體的程式碼示

See all articles