PHP 微信支付URL重定向获取code问题
微信支付的demo融进我的框架的时候,我的是OOP的写法,官方demo是原生的写法,我写了个方法去预处理微信支付,第一步获取code的时候 发给微信的 rediect_url重定向地址 返回调用我这预处理方法的时候,发现SESSION不能用了,这导致了不能回到获取订单信息的方法里进执行支付的模板了
代码如下:
//进入订单支付模板
function dopay($order='')
{
if($pay=='weixin')
{
$this->weixinpay()
<code>} $this->dispaly('dopay.html'); </code>
}
function weixinpay()
{
<code> if(!isset($_GET['code'])) { //触发微信返回code码 $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL); Header("Location: $url"); //注意这个重定向,是个巨大的坑,一旦请求微信,微信redidtc_url调用的是本方法,此时SESSION失效 //跳转之后访问这个方法但是,这个方法没调用去模板的方法,所以没法显示模板,之后我想用SESSION保存 } else { //获取code码,以获取openid $code = $_GET['code']; $jsApi->setCode($code); $openid = $jsApi->getOpenId(); } // 微信预支付代码。。。。。 //按理说已经成功预支付了,应该去显示模板了,但是由于此时是微信redidtc_url直接外网访问此方法的,所以上面的index方法来不及等本方法执行完毕 就没法调用模板了,问题来了 index -> weixinpay(微信预处理) -> 显示支付模板 weixinpay 去调用了微信,由于需要获取code,不得不调用自己,但是调用后,SESSION失效,如何去index方法呢? 注意:index方法是需要order_id参数的,不如报错 </code>
}
回复内容:
微信支付的demo融进我的框架的时候,我的是OOP的写法,官方demo是原生的写法,我写了个方法去预处理微信支付,第一步获取code的时候 发给微信的 rediect_url重定向地址 返回调用我这预处理方法的时候,发现SESSION不能用了,这导致了不能回到获取订单信息的方法里进执行支付的模板了
代码如下:
//进入订单支付模板
function dopay($order='')
{
if($pay=='weixin')
{
$this->weixinpay()
<code>} $this->dispaly('dopay.html'); </code>
}
function weixinpay()
{
<code> if(!isset($_GET['code'])) { //触发微信返回code码 $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL); Header("Location: $url"); //注意这个重定向,是个巨大的坑,一旦请求微信,微信redidtc_url调用的是本方法,此时SESSION失效 //跳转之后访问这个方法但是,这个方法没调用去模板的方法,所以没法显示模板,之后我想用SESSION保存 } else { //获取code码,以获取openid $code = $_GET['code']; $jsApi->setCode($code); $openid = $jsApi->getOpenId(); } // 微信预支付代码。。。。。 //按理说已经成功预支付了,应该去显示模板了,但是由于此时是微信redidtc_url直接外网访问此方法的,所以上面的index方法来不及等本方法执行完毕 就没法调用模板了,问题来了 index -> weixinpay(微信预处理) -> 显示支付模板 weixinpay 去调用了微信,由于需要获取code,不得不调用自己,但是调用后,SESSION失效,如何去index方法呢? 注意:index方法是需要order_id参数的,不如报错 </code>
}
微信js公众号支付步骤: 1.后端生成js package 2.前端发起支付 3.支付完成后页面js callback 4.后端callback ; 中间不涉及楼主说的code操作

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
