クレジット カード支払い用の WeChat パブリック アカウントの開発に関するサンプル チュートリアルを共有する
メッセージを残して転送することを歓迎します
この記事では、特に WeChat クレジット カード支払いについて説明します
シナリオの紹介
ステップ 1: ユーザーはクレジット カード支払いを選択し、WeChat を開き、「私」と入力します->「ウォレット」->「スワイプ カード」バーコード インターフェイス
ステップ 2: レジ担当者が販売者システムで操作して支払い注文を生成し、ユーザーが支払い金額を確認します
販売者のレジ担当者がスキャン デバイス/QR コードを使用してユーザーのバーコードをスキャンし、販売者のレジ担当者システムが支払いを送信します
ステップ 4: WeChat 支払いバックエンド システムが支払いリクエストを受信し、パスワード検証ルールに基づいてユーザーの支払いパスワードを検証するかどうかを決定します。パスワード検証を必要としないトランザクションは直接控除を開始し、検証が必要です。 パスワードトランザクションの場合、パスワード入力ボックスがポップアップ表示されます。支払いが成功すると、WeChat に成功ページが表示されます。支払いが失敗した場合は、エラー メッセージが表示されます
販売者側のプロセス
詳細なドキュメントの紹介については、プロセスを簡単に理解するだけで済みます。ここをクリックしてください
カード支払いアクセス モードは、マーチャント バックエンド アクセス (同様のサードパーティによる使用のために他者に提供される) とストア アクセス (自身の使用のため) に分類できます。 の違いは、支払い結果が一度配布されることです。詳細
。 区别就是支付结果多分发一次
。
根据用户是否需要输入支付密码可分为:免密模式和验密模式。
支付验证密码规则
支付金额>500元的交易需要验证用户支付密码
用户账号每天最多有5笔交易可以免密,超过后需要验证密码
微信支付后台判断用户支付行为有异常情况,符合免密规则的交易也会要求验证密码
免密模式和验密模式两者的区别会在后面讲到
下面来讲讲具体实现
刷卡支付当中使用的支付接口为: 提交刷卡支付API 使用的是https
请求;不需要微信支付证书。
以下是具体实现代码:com.javen.weixin.controller.WeixinPayController
中的micropay()
public void micropay(){ String url="https://api.mch.weixin.qq.com/pay/micropay"; String total_fee="1"; //授权码 String auth_code = getPara("auth_code"); Map<String, String> params = new HashMap<String, String>(); params.put("appid", appid); params.put("mch_id", partner); params.put("device_info", "javen205");//终端设备号 params.put("nonce_str", System.currentTimeMillis() / 1000 + ""); params.put("body", "刷卡支付测试"); // params.put("detail", "json字符串");//非必须 params.put("attach", "javen205");//附加参数非必须 String out_trade_no=System.currentTimeMillis()+""; params.put("out_trade_no", out_trade_no); params.put("total_fee", total_fee); String ip = IpKit.getRealIp(getRequest()); if (StrKit.isBlank(ip)) { ip = "127.0.0.1"; } params.put("spbill_create_ip", ip); params.put("auth_code", auth_code); String sign = PaymentKit.createSign(params, paternerKey); params.put("sign", sign); String xmlResult = HttpUtils.post(url, PaymentKit.toXml(params)); //同步返回结果 System.out.println("xmlResult:"+xmlResult); Map<String, String> result = PaymentKit.xmlToMap(xmlResult); String return_code = result.get("return_code"); if (StrKit.isBlank(return_code) || !"SUCCESS".equals(return_code)) { //通讯失败 String err_code = result.get("err_code"); //用户支付中,需要输入密码 if (err_code.equals("USERPAYING")) { //等待5秒后调用【查询订单API】https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_2 } renderText("通讯失败>>"+xmlResult); return; } String result_code = result.get("result_code"); if (StrKit.isBlank(result_code) || !"SUCCESS".equals(result_code)) { //支付失败 renderText("支付失败>>"+xmlResult); return; } //支付成功 renderText(xmlResult); }
在开源项目weixin-guide中 测试访问地址为http://域名[/项目名称]/pay/micropay?auth_code=xxxxx
, 授权码auth_code
为微信客户端刷卡界面条形码上显示的数字。
(注:用户刷卡条形码规则:18位纯数字,以10、11、12、13、14、15开头)
测试
不用扫码枪也可以测试,只是测试手动输入授权码麻烦一点(1分钟刷新一次),需要你快速输入授权码。扫码枪只是读取授权码并没有多做其他的事情。
我本地做端口映射测试的地址如下:
其中auth_code
值是谁便写的http://域名/pay/micropay?auth_code=111
在浏览器中访问
返回结果如下:
<xml><return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[您公众号的appid]]></appid> <mch_id><![CDATA[您微信商户号]]></mch_id> <device_info><![CDATA[javen205]]></device_info> <nonce_str><![CDATA[eXgczazQq54pqcyH]]></nonce_str> <sign><![CDATA[FF03DA0E58845CCE1FCC2166EC03FBE5]]></sign> <result_code><![CDATA[FAIL]]></result_code> <err_code><![CDATA[AUTH_CODE_INVALID]]></err_code> <err_code_des><![CDATA[请扫描微信支付被扫条码/二维码]]></err_code_des> </xml>
刷卡支付超过5次就会提示输入密码
返回的err_code
为USERPAYING
此时支付结果就需要通过 查询订单接口来获取
这就是有密码与无密码的区别,有密码必须通过
查询订单
来获取支付结果,如果结果任然为USERPAYING
,则每隔5秒循环调用查询订单API
判断实际支付结果,如果用户取消支付或累计30秒用户都未支付,商户收银台退出查询流程后继续调用撤销订单API
撤销支付交易。
输入正确的auth_code
返回的结果如下:
<xml><return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[您公众号的appid]]></appid> <mch_id><![CDATA[您微信商户号]]></mch_id> <device_info><![CDATA[javen205]]></device_info> <nonce_str><![CDATA[Z9p14VPJ822ZTPXP]]></nonce_str> <sign><![CDATA[03BD421A33A5079A1BE6030E2EBA8291]]></sign> <result_code><![CDATA[SUCCESS]]></result_code> <openid><![CDATA[o_pncsidC-pRRfCP4zj98h6slREw]]></openid> <is_subscribe><![CDATA[Y]]></is_subscribe> <trade_type><![CDATA[MICROPAY]]></trade_type> <bank_type><![CDATA[CFT]]></bank_type> <total_fee>1</total_fee> <fee_type><![CDATA[CNY]]></fee_type> <transaction_id><![CDATA[4009682001201610156761057959]]></transaction_id> <out_trade_no><![CDATA[1476523316727]]></out_trade_no> <attach><![CDATA[javen205]]></attach> <time_end><![CDATA[20161015172058]]></time_end> <cash_fee>1</cash_fee> </xml>
使用场景描述
如果接入模式为商户后台接入 支付成功了微信支付系统就会将上面的
xml
数据返回给商户,商户再将支付结果回调给门店收银台,收银台继续处理业务逻辑如果接入模式-门店接入 支付成功了微信支付系统就会将上面的
ユーザーが支払いパスワードを入力する必要があるかどうかに応じて、パスワード不要モードとパスワード検証モードに分けることができます。xml
支払い確認パスワードのルール
支払い金額が500元を超える取引では、ユーザーの支払いパスワードを確認する必要があります
ユーザーアカウントはパスワードなしで1日あたり最大5回の取引を行うことができ、その後はパスワードの確認が必要になります
WeChat決済バックエンドがユーザーの決済動作に異常があると判断し、パスワードフリールールに準拠した取引にもパスワード認証が必要となります
パスワードフリーモードとパスワード認証モードの違いは後で説明します
カード支払いで使用される支払いインターフェイスは次のとおりです: カード支払いを送信するAPI🎜 使用リクエストはhttps
であり、WeChat 支払い証明書は必要ありません。 🎜🎜以下は具体的な実装コードです: 🎜com.javen.weixin.controller.WeixinPayController
のmicropay()
🎜rrreee🎜 オープンソースでアクセスアドレスをテストしますproject weixin-guide は http://domain name[/project name]/pay/micropay?auth_code=xxxxx
で、authorization code auth_code
はバーコードに表示される番号です。 WeChat クライアント カード スワイプ インターフェイス上で。 🎜🎜 (注: ユーザー カード スワイプ バーコード ルール: 10、11、12、13、14、15 で始まる 18 桁の純粋な数字) 🎜🎜テスト
🎜 スキャンする必要はありませんthe code Gun を使ってテストすることもできますが、認証コードを手動で入力するのが少し面倒(1分に1回更新される)し、素早く認証コードを入力する必要があります。コード スキャナは認証コードを読み取るだけで、他には何も行いません。 🎜🎜🎜ポート マッピング テスト用のローカル アドレスは次のとおりです: 🎜🎜auth_code
値は誰によっても書き込まれます🎜http://domain name/pay/micropay?auth_code=111
ブラウザで 🎜🎜 にアクセスすると、返される結果は次のようになります: 🎜rrreee🎜 カードを 5 回以上スワイプして支払うと、パスワードの入力を求められます 🎜🎜 返されたerr_code code> は <code>USERPAYING
です🎜🎜この時点では、クエリ注文インターフェイスを通じて支払い結果を取得する必要があります🎜🎜これは、パスワードがある場合とない場合の違いです。query order
を通じて支払い結果を取得する必要があります。結果がUSERPAYING
である場合は、5 秒ごとに ループ 🎜クエリ注文 API code> を呼び出し、実際の支払い結果を決定します。ユーザーが支払いをキャンセルするか、ユーザーが 30 秒間支払いを怠った場合、販売者のレジ<a href="http://www.php.cn/code/6835.html" target="_blank"> クエリ プロセスを終了した後、引き続き <code>Cancel Order API
を呼び出してキャンセルします。支払いトランザクション。 🎜🎜🎜正しいauth_code
を入力すると、返される結果は次のとおりです: 🎜rrreee🎜使用シナリオの説明🎜🎜 🎜アクセス モードがマーチャント バックエンド アクセス🎜で、支払いが成功した場合、 WeChat 支払いシステムは、上記のxml
データが販売者に返され、販売者は支払い結果を店舗のレジ担当者にコールバックし、レジ担当者はビジネス ロジックの処理を続行します🎜🎜If🎜 アクセス モード -店舗へのアクセス🎜 支払いが成功しました WeChat 支払いシステム 上記のxml
データがレジ担当者に返され、レジ担当者はビジネス ロジックの処理を続行します🎜🎜🎜🎜🎜🎜🎜 スワイプ カード支払い.png 🎜🎜 以上でWeChatカード決済の詳細が完了しました。 🎜🎜【関連推奨事項】🎜🎜1. 🎜WeChatパブリックアカウントプラットフォームのソースコードダウンロード🎜🎜🎜2. 🎜PigCmsマイクロ電子商取引システム運用バージョン(独立したマイクロストアモール+3レベルの流通システム)🎜🎜🎜3 🎜WeChat投票ソースコード🎜🎜
以上がクレジット カード支払い用の WeChat パブリック アカウントの開発に関するサンプル チュートリアルを共有するの詳細内容です。詳細については、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)

ホットトピック









PHP は、Web 開発およびサーバーサイド プログラミング、特に WeChat 開発で広く使用されているオープン ソースのスクリプト言語です。現在、ますます多くの企業や開発者が WeChat 開発に PHP を使用し始めています。これは、PHP が本当に学びやすく、使いやすい開発言語となっているためです。 WeChat の開発では、メッセージの暗号化と復号化はデータのセキュリティに関わるため、非常に重要な問題となります。暗号化と復号化の方法を持たないメッセージの場合、ハッカーは簡単にデータを入手でき、ユーザーに脅威を与える可能性があります。

WeChat の人気に伴い、マーケティング ツールとして WeChat を使用し始める企業が増えています。 WeChat グループ メッセージング機能は、企業が WeChat マーケティングを行うための重要な手段の 1 つです。ただし、手動送信のみに頼ると、マーケターにとって非常に時間と労力がかかる作業になります。したがって、WeChat マス メッセージング ツールを開発することが特に重要です。この記事では、PHP を使用して WeChat マス メッセージング ツールを開発する方法を紹介します。 1. 準備作業 WeChat マス メッセージング ツールを開発するには、次の技術点を習得する必要があります。 PHP WeChat パブリック プラットフォーム開発の基礎知識 開発ツール: Sub

WeChat パブリック アカウントの開発において、ユーザー タグ管理は非常に重要な機能であり、開発者がユーザーをよりよく理解し、管理できるようになります。この記事では、PHPを使用してWeChatのユーザータグ管理機能を実装する方法を紹介します。 1. WeChat ユーザーの openid を取得する WeChat ユーザータグ管理機能を使用する前に、まずユーザーの openid を取得する必要があります。 WeChat パブリック アカウントの開発では、ユーザーの承認を通じて openid を取得するのが一般的です。ユーザー認証が完了したら、次のコードを通じてユーザーを取得できます。

WeChat が人々の生活においてますます重要なコミュニケーション ツールになるにつれ、その機敏なメッセージング機能はすぐに多くの企業や個人に支持されるようになりました。企業にとって、WeChat をマーケティング プラットフォームとして開発することがトレンドになっており、WeChat 開発の重要性が徐々に顕著になってきています。その中でも、グループ送信機能はさらに広く使用されているため、PHP プログラマとしてグループ メッセージ送信レコードを実装するにはどうすればよいでしょうか?以下に簡単に紹介します。 1. WeChat パブリック アカウントに関する開発知識を理解する グループ メッセージ送信レコードの実装方法を理解する前に、

WeChat は現在、世界最大のユーザーベースを持つソーシャル プラットフォームの 1 つであり、モバイル インターネットの普及に伴い、ますます多くの企業が WeChat マーケティングの重要性を認識し始めています。 WeChat マーケティングを実施する場合、顧客サービスは重要な部分です。カスタマー サービスのチャット ウィンドウをより適切に管理するために、WeChat 開発に PHP 言語を使用できます。 1. PHP WeChat 開発の概要 PHP は、Web 開発の分野で広く使用されているオープン ソースのサーバー側スクリプト言語です。 WeChat パブリック プラットフォームが提供する開発インターフェイスと組み合わせると、PHP 言語を使用して WeChat を実行できます。

WeChat パブリック アカウントの開発では、投票機能がよく使用されます。投票機能はユーザーが気軽に交流に参加できるほか、イベントの開催や意見調査などにも重要なツールです。この記事では、PHPを使用してWeChatの投票機能を実装する方法を紹介します。 WeChat公式アカウントの認証を取得する まずはWeChat公式アカウントの認証を取得する必要があります。 WeChatパブリックプラットフォームでは、WeChatパブリックアカウント、公式アカウント、およびパブリックアカウントに対応するトークンのAPIアドレスを設定する必要があります。 PHP言語を使用した開発の過程では、WeChatが公式に提供するPHを使用する必要があります

インターネットとモバイル スマート デバイスの発展に伴い、WeChat はソーシャルおよびマーケティング分野に欠かせないものになりました。デジタル化が進むこの時代において、WeChat 開発に PHP を使用する方法が多くの開発者の焦点になっています。この記事では主に、PHP を WeChat 開発に使用する方法とそのヒントや注意事項を紹介します。 1. 開発環境の準備 WeChat を開発する前に、まず対応する開発環境を準備する必要があります。具体的には、PHP オペレーティング環境と WeChat パブリック プラットフォームをインストールする必要があります。

モバイル インターネットの普及に伴い、WeChat をソーシャル ソフトウェアとして使用する人が増えており、WeChat のオープン プラットフォームは開発者に多くの機会をもたらしています。近年、人工知能技術の発展に伴い、音声認識技術は携帯端末開発において徐々に人気のある技術の一つになってきています。 WeChat 開発では、音声認識をどのように実装するかが多くの開発者にとって懸念事項となっています。この記事では、PHP を使用して音声認識機能を実装する WeChat アプリケーションを開発する方法を紹介します。 1. 音声認識の原理 音声認識の実装方法を紹介する前に、まず言語を理解しましょう
