マイクロチャネルアリペイは支払うために2次元コードを達成するためにマージ

背景ノート

私たちは、3市のショッピングセンターに位置している長年のために開かれたが、良い投資と日常業務の恩恵を受け、旅客輸送は、プロジェクトの種類で、市内では比較的安定しています。とき祝日は人件費の効率化のために出演トラフィックのピーク期間は、料金所の料金で待機している車のバックログにつながります。私は、終了のピンチテーブルの推定を通じて駐車場で車に平均20〜30秒の人件費でした。この問題は真剣に顧客の運転経験に影響を与えたので、私たちは、出口ゲートを介して車を残すために、直接輸出を待たずに時間の駐車場に到達するために、オンライン事前に支払うことをユーザーを許可する、公式マイクロパーキングオンライン決済機能を提供します2-3秒の平均値に短縮された時間は、大幅にトラフィック効率を高めます。

オンライン事前決済機能はH5、プログラムの小さなバージョンに移植し、17年に実装されています。事前に最初の月のユーザーがオンライン決済の割合は、オンライン操作の期間の後、70%で、この比率の安定は、完全に駐車場出口で渋滞の問題を解決するため、20%に達しました。
gitのログ2017年の最初の提出のアプレット版
UIのオンライン決済のアプレット版

Shangguanのみ(がらくたのような)マイクロチャネルのマ​​イクロペイメントをサポートしているので、いくつかのAlipayの支払ユーザーをサポートするため、および支払方法を補完するために、同社は、駐車場のエレベーターホールで、いくつかの支払いマシンを展開する予定です。タッチスクリーンの床を使用して支払機は、C / sのアーキテクチャから、フロントエンドは、シンプルなUIのプレゼンテーション、これ実際上性能要件です。

一つヤードの支払い

マイクロチャネル支払いとアリペイをサポートする必要性を伴うプロセスにおける決済システムの設計、後に、基本的なビジネスロジックは、ユーザーが背景にナンバープレートの番号を提出することで、コストのバックグラウンドチェックは再び、マイクロチャネルAlipayのSDKの支払パラメータで二次元コードを生成しました支払機へのフィードバックのパラメータは、マイクロチャネルを介してユーザを待ちやAlipayのクライアントは、2次元コードをスキャン支払います。
セルフサービスの支払機

元の最初のバージョンでは、マイクロチャネルとAlipayのを支援するために、我々は、ユーザが対応するアプリ走査に支払うことを要求され、メインインターフェイス支払機、二次元コードの上に配置され、二次元マイクロ文字コードが使用されましたネイティブの支払いとアリペイは、個人的に支払うの製品を。この経験は、2次元コードをマイクロチャネルとアリペイ同じ時間をサポートするので、準備ができて良いことではないことは明らかです。

マイクロチャネルネイティブのPython SDKに支払わurlを呼び出します

wxpay = WXPay(app_id=WXAPPID, mch_id=WXMCHID, key=WXKEY, cert_pem_path=None, key_pem_path=None, timeout=6000, use_sandbox=False)
wxresp = wxpay.unifiedorder(dict(body='三盛国际广场-停车缴费-%s' % plateno,
                                    out_trade_no='%s' % (orderNo,),
                                    product_id=plateno,
                                    total_fee=payable,
                                    time_start=datetime.datetime.now().strftime("%Y%m%d%H%M%S"),
                                    time_expire=(datetime.datetime.now() + datetime.timedelta(minutes=5)).strftime("%Y%m%d%H%M%S"),
                                    notify_url='https://apiserver/wxnotify',
                                    trade_type='NATIVE'))
if wxresp['return_code'].upper() == 'SUCCESS' and wxresp['result_code'].upper() == 'SUCCESS' and wxresp['appid'] == WXAPPID:
    wxurl = wxresp['code_url']

wxurlは次のように、このような形式は次のとおりです。
weixin://wxpay/bizpayurl?sign=XX&appid=XX&mch_id=XX&product_id=XX&time_stamp=XX&nonce_str=XX

個人的にURLを支払う取得AlipayのPythonのSDKを呼び出し

alipay_client_config = AlipayClientConfig()
alipay_client_config.server_url = 'https://openapi.alipay.com/gateway.do'
alipay_client_config.app_id = ALI_APPID
alipay_client_config.app_private_key = ALI_PRI_KEY
alipay_client_config.alipay_public_key = ALI_PUB_KEY
aliclient = DefaultAlipayClient(alipay_client_config=alipay_client_config, logger=logger)
alimodel = AlipayTradePrecreateModel()
alimodel.out_trade_no = orderNo
alimodel.total_amount = payable / 100
alimodel.subject = "三盛国际广场-停车费-%s" % plateno
alimodel.qr_code_timeout_express = "5m"
alirequest = AlipayTradePrecreateRequest(biz_model=alimodel)
udf_params = dict()
udf_params[P_NOTIFY_URL] = "https://apiserver/alinotify"
alirequest.udf_params = udf_params

aliresponse = aliclient.execute(alirequest)
if aliresponse:
    response = AlipayTradePrecreateResponse()
    response.parse_response_content(aliresponse)
    if response.is_success():
        aliurl = response.qr_code

aliurlは次のように、このような形式は次のとおりです。

https://qr.alipay.com/bavh4wjlxf12tper3a

最初のバージョンでは、2次元コードは、支払機は、すべての後に、お支払いするためのコードを必要とするため、直接使用することはできません明らかに、なる私たちの符号化パラメータに返されたマイクロチャネルとアリペイサーバであるこれら2人の巨人はありません表示しました二次元コードの反対側を掃引独自APPをサポートします。

だから我々はブリッジとして私たち自身の世代の2次元コードを、決済パラメータマイクロ文字やAlipayのリターンを得た後、ダウンし、一時保存し、マシンが2次元コードを生成し、支払いに引数H5ページに生産を移転することを考えますユーザーへのスキャンコードアプリのスキャンコードは、ページアドレスへのアクセスを解析する際に、アプリケーションに応じて、サーバーがあなたが有料のURLを、対応するブラウザエージェント情報をジャンプすることができます。
一つヤード支払いのタイミング図

if 'MicroMessenger' in agent:
#生成微信Native支付url
    return redirect(wxurl)
elif 'Alipay' in agent:
#生成支付宝当面付支付url
    return redirect(aliurl)
else:
    return '请打开微信或支付宝扫描付款二维码!'

このロジックは、問題はないように思われ、それがユーザーエクスペリエンスの問題に最適なソリューションです。実際にはピットもあり、マイクロチャネルの有料はこの操作、マイクロチャネルの二次元コードが支払いを決定することはできませんがアリペイは個人的には、何の問題もなく、この操作を支払わされ、それが非判断された場合、飛び越えるためにカメラのスキャンまたはブラウザから直接アクセスでそうするためのマイクロチャネルの有料は、セキュリティ上の問題を回避することができるので、スキャンコードは、支払いを拒否するようにブラウザに指示します。

人に支払うためにアリペイ

ネイティブのマイクロチャネルが直接支払うことができないので、私はできだけQuxianjiuguo、我々はすでに予備H5有料駐車料金のバージョンなので、直接使用、これはそれが時にマイクロチャンネルスキャンコードを決定したとき、少し衣替えを持っていたので、 H5ページ内のマイクロ文字のJSAPIの支払い、完全な支払いを呼び出します。

if 'MicroMessenger' in agent:
    #生成微信h5支付url
    return redirect(wxh5url)
elif 'Alipay' in agent:
    #生成支付宝当面付支付url
    return redirect(aliurl)
else:
    return '请打开微信或支付宝扫描付款二维码!'

顔へ顔よりAlipayの賃金が、それは支払いの経験とネイティブの一貫性を保つために、H5の支払いページを行う必要がある、我々はH5支払スタイルのオフィシャルページを参照してください。

マイクロチャネルの有料H5ページ

このようなプロセスは、マイクロチャネルを走ったし、基本的な公共アリペイは、問題を解決するために、二次元コードを支払う、あなたはQQをサポートすることを計画している場合返済、Baiduの財布、YihuhuhuapiaoもJingdongのクラスをすることができます支払いました。

おすすめ

転載: www.cnblogs.com/minibear2000/p/11645987.html