WeChat返金アプリケーションをPHPで実装する方法
WeChat 支払いの実装方法については以前に説明しました。詳細については、関連記事を参照してください。 PHP で WeChat 支払い (jsapi 支払い) を実装するプロセス および WeChat 支払い (jsapi 支払い) を実装するプロセス支払い) ThinkPHP で。ビジネス上のニーズにより、WeChat の返金も必要でしたが、調査と検討の結果、最終的に解決されました。
事前準備:
もちろん、WeChat での支払いは完了していますが、そうでない場合はどうすれば返金できますか? 今回は公式デモを使用します。もちろん、デモを自分で書き直してカプセル化したマスターがインターネット上にたくさんいるかもしれません。デモのほうが使いやすく、シンプルかもしれませんが、それでも次の理由からこれを使用することはお勧めしません:
( 1) WeChat 決済を実装しているだけで、完全に機能していない可能性がありますが、返金の申請、返金の問い合わせ、注文の問い合わせ、注文のキャンセルなど、後で必要になる可能性のあるビジネス機能もあります。マスターの SDK の場合、新しいビジネス ニーズがあると混乱するでしょう;
(2) セキュリティに関する考慮事項、支払いとお金に関しては、非常に安全でなければなりません。公式SDKにも文句はあるけど、少なくとも比較的安全なはずだし、また書き換えるだろうし、今のところ問題は見つかっていないが、抜け穴があったら大変だ。
この記事は、公式 SDK の最も重要なクラス ファイルである WxPay.Api.php で提供されるrefund() メソッドを使用して実装されています。このメソッドは、WxPay.Api の 141 番にあります。 php ファイル。OK、コードは次のとおりです:
/** * * 申请退款,WxPayRefund中out_trade_no、transaction_id至少填一个且 * out_refund_no、total_fee、refund_fee、op_user_id为必填参数 * appid、mchid、spbill_create_ip、nonce_str不需要填入 * @param WxPayRefund $inputObj * @param int $timeOut * @throws WxPayException * @return 成功时返回,其他抛异常 */ public static function refund($inputObj, $timeOut = 6){ $url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; //检测必填参数 if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) { throw new WxPayException("退款申请接口中,out_trade_no、transaction_id至少填一个!"); }else if(!$inputObj->IsOut_refund_noSet()){ throw new WxPayException("退款申请接口中,缺少必填参数out_refund_no!"); }else if(!$inputObj->IsTotal_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数total_fee!"); }else if(!$inputObj->IsRefund_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!"); }else if(!$inputObj->IsOp_user_idSet()){ throw new WxPayException("退款申请接口中,缺少必填参数op_user_id!"); } $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号 $inputObj->SetNonce_str(self::getNonceStr());//随机字符串 $inputObj->SetSign();//签名 $xml = $inputObj->ToXml(); $startTimeStamp = self::getMillisecond();//请求开始时间 $response = self::postXmlCurl($xml, $url, true, $timeOut); $result = WxPayResults::Init($response); self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间 return $result; }
公式メソッドでは、どのパラメータが必要であるかが明確に示されており、SDK はいくつかの必要なパラメータをすでに入力しています。簡単にするために、このメソッドを再カプセル化します。プロジェクト内で呼び出しています。:
/** * 微信退款 * @param string $order_id 订单ID * @return 成功时返回(array类型),其他抛异常 */ function wxRefund($order_id){ //我的SDK放在项目根目录下的Api目录下 require_once APP_ROOT."/Api/wxpay/lib/WxPay.Api.php"; //查询订单,根据订单里边的数据进行退款 $order = M('order')->where(array('id'=>$order_id,'is_refund'=>2,'order_status'=>1))->find(); $merchid = WxPayConfig::MCHID; if(!$order) return false; $input = new WxPayRefund(); $input->SetOut_trade_no($order['order_sn']);//自己的订单号 $input->SetTransaction_id($order['transaction_id']); //微信官方生成的订单流水号,在支付成功中有返回 $input->SetOut_refund_no(getrand_num(true));//退款单号 $input->SetTotal_fee($order['total_price']);//订单标价金额,单位为分 $input->SetRefund_fee($order['total_price']);//退款总金额,订单总金额,单位为分,只能为整数 $input->SetOp_user_id($merchid); $result = WxPayApi::refund($input);//退款操作 // 这句file_put_contents是用来查看服务器返回的退款结果 测试完可以删除了 //file_put_contents(APP_ROOT.'/Api/wxpay/logs/log3.txt',arrayToXml($result),FILE_APPEND); return $result; }
ここで苦情を言わせてください。戻り値の型については言及されていません。支払いの場合、XML データが返されます。ただし、ここでは配列が返されます。これが引っかかりました。油断しました(笑)でも、配列を返したほうがいいですね、直接判断して処理できます。
メソッド呼び出しはさらに単純です:
//微信退款 $result = wxRefund($order_id); // 这句file_put_contents是用来查看服务器返回的退款结果 测试完可以删除了 //file_put_contents(APP_ROOT.'/Api/wxpay/logs/log4.txt',arrayToXml($result),FILE_APPEND); if(($result['return_code']=='SUCCESS') && ($result['result_code']=='SUCCESS')){ //退款成功 }else if(($result['return_code']=='FAIL') || ($result['result_code']=='FAIL')){ //退款失败 //原因 $reason = (empty($result['err_code_des'])?$result['return_msg']:$result['err_code_des']); }else{ //失败 }
返金は次のように正常に返されます:
個人的なテストは正しいです。これは次のとおりです。統合された公式 SDK によって実装されます。SDK を使用しない場合は、より簡単な方法を使用できます。次を参照してください。PHP で WeChat 支払い (jsapi 支払い) と返金を実装します (支払い SDK を統合する必要はありません)
PHP 関連の知識については、PHP チュートリアル をご覧ください。
以上がWeChat返金アプリケーションをPHPで実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









ヒントを提供してくれた中国南部のネチズン Qing Qiechensi、HH_KK、石原さとみ、Wu Yanzu に感謝します。 9月2日のニュースによると、最近「iPhone 16はWeChatをサポートしないかもしれない」という噂があるが、これに対し中国のApple公式ホットラインに電話したシェル・ファイナンスの記者は、iOSシステムやAppleデバイスは引き続きサポートできると回答したという。 WeChat と WeChat を使用する Apple App Store に引き続き掲載およびダウンロードできるかどうかの問題は、今後の状況を決定するために Apple と Tencent 間のコミュニケーションと協議が必要です。ソフトウェア App Store と WeChat の問題の説明 ソフトウェア App Store の技術コンサルタントは、ソフトウェアを Apple Store に掲載するには開発者が料金を支払う必要がある可能性があると指摘しました。一定のダウンロード数に達すると、Apple はそれ以降のダウンロードに対応する料金を支払う必要があります。 AppleはTencentと積極的にコミュニケーションをとっており、

DeepSeek:強力なAI画像生成ツール! DeepSeek自体は画像生成ツールではありませんが、その強力なコアテクノロジーは、多くのAI塗装ツールを根本的にサポートしています。 DeepSeekを使用して画像を間接的に生成する方法を知りたいですか?読み続けてください! DeepSeekベースのAIツールで画像を生成します。次の手順では、これらのツールを使用するように導きます。AIペイントツールの起動:DeepSeekベースのAIペイントツールを検索して開きます(たとえば、「Simple AI」を検索します)。描画モードを選択します。「AI図面」または同様の関数を選択し、「アニメアバター」、「ランドスケープ」などのニーズに応じて画像タイプを選択します。

WeChat が iPhone 16 をサポートするという噂は誤りであることが判明しました。手がかりを提供してくれたネチズン Xi Chuang Jiu Shi と HH_KK に感謝します。 9 月 2 日のニュースによると、今日 WeChat が iPhone 16 をサポートしない可能性があるという噂があります。iPhone が iOS 18.2 システムにアップグレードされると、WeChat は使用できなくなります。 『デイリー経済ニュース』によると、この噂はデマであることが関係者の話でわかったという。 Apple の回答: Shell Finance によると、中国の Apple の技術コンサルタントは、WeChat が iOS システムまたは Apple デバイスで引き続き使用できるかどうか、また WeChat が引き続き Apple App Store に掲載されダウンロードできるかどうかという問題は解決する必要があると回答しました。 Apple と Tencent の間で解決されることは、コミュニケーションと話し合いを通じてのみ、将来の状況を決定することができます。現在、Apple は Tencent と積極的に連絡をとり、Tencent が今後も継続するかどうかを確認しています。

2013年に設立された主要な暗号通貨取引プラットフォームであるGate.ioは、中国のユーザーに完全な公式のウェブサイトを提供します。このウェブサイトは、スポット取引、先物取引、貸付など、幅広いサービスを提供し、中国のインターフェース、リッチリソース、コミュニティサポートなどの特別な機能を提供します。

OKXトレーディングプラットフォームは、取引手数料、引き出し料金、資金調達料金など、さまざまな料金を提供しています。スポットトランザクションの場合、取引手数料はトランザクションのボリュームとVIPレベルによって異なり、「マーケットメーカーモデル」を採用します。つまり、市場はトランザクションごとに低いハンドリング料金を請求します。さらに、OKXは、通貨標準契約、USDT契約、配送契約など、さまざまな先物契約も提供しており、各契約の料金構造も異なります。

Gateio Exchangeアプリは、公式のサードパーティのアプリケーション市場、フォーラムコミュニティ、その他のチャネルをカバーする古いバージョン用のチャネルをダウンロードします。また、古いバージョンを簡単に取得し、新しいバージョンやデバイスの互換性を使用する際の不快感を解決するのに役立ちます。

この記事では、中国のOUYI OKXアプリの安全なダウンロードに関する詳細なガイドを提供します。国内のアプリストアの制限により、ユーザーはOUYI OKXの公式Webサイトからアプリをダウンロードするか、公式Webサイトが提供するQRコードを使用してスキャンおよびダウンロードすることをお勧めします。ダウンロードプロセス中に、公式Webサイトのアドレスを確認し、アプリケーションの許可を確認し、インストール後にセキュリティスキャンを実行し、2要素の検証を有効にしてください。 使用中は、地方の法律や規制を遵守し、安全なネットワーク環境を使用し、アカウントのセキュリティを保護し、詐欺に対して警戒し、合理的に投資してください。 この記事は参照のみであり、投資のアドバイスを構成していません。

Gate.io(Sesame Open Door)は、世界をリードする暗号通貨取引プラットフォームです。このチュートリアルでは、アカウントの登録とログイン、KYC認定、FIAT通貨とデジタル通貨充電、取引ペアの選択、制限/市場取引注文、注文およびトランザクションレコードの表示などの手順を把握しているため、暗号通貨取引のためのgate.ioプラットフォームを迅速に開始できます。 初心者であろうとベテランであろうと、このチュートリアルから利益を得て、gate.ioの取引スキルを簡単に習得できます。
