pythonアクセスAlipayの操作例

PythonアクセスAlipayプロセス:

最初の一歩:

まず、python SDKをダウンロードします。このSDKは、Alipayの開発者向けドキュメントにはありませんが、強力なpythonプログラマーが、pythonに属するAlipay支払いSDKのセットを開発しました。

ダウンロード方法:pip install python-alipay-sdk、githubへのリンクはhttps://github.com/fzlee/alipayです

**ステップ2: **

SDKをダウンロードした後、Alipayを設定する必要があります。Alipayの環境は2つのタイプに分けられます。1つは正式な環境で、プログラムがオンラインになった後の環境です。

2つ目は、サンドボックス環境、つまり、プロジェクトを開発する際の開発者向けのテスト環境です。

正式な環境ではアプリケーションを作成する必要があります。その後、Alipayのバックグラウンドがそれを確認し、合格後にappidが一意の記号として割り当てられます。写真は、アプリケーションの作成を示しています。

ここではサンドボックス環境を使用しているので、Alipayのレビューを待つ必要はありません。クリックして開発者センター-R&Dサービス-サンドボックスアプリケーションに入ります。図に示すように、appidが自動的に割り当てられます。これは、秘密鍵と公開鍵である必要があります。

3番目のステップ:

サーバーの独自の秘密鍵と公開鍵を生成する必要があります。Alipayはsha256、sha1をサポートするようになりました。

Sha256をお勧めします。Alipayは秘密鍵を生成する方法と手順を提供します(https://docs.open.alipay.com/291/105971/)

括弧内のリンクを開いて、秘密鍵を生成するための詳細な方法と手順を確認してください。公開鍵と秘密鍵が生成されたら、公開鍵をAlipay鍵設定にアップロードします。 Alipayの公開鍵をローカルにコピーし、独自の公開鍵と秘密鍵、およびAlipayの公開鍵(これは非常に重要です)を保存し、通常はローカルプロジェクトのファイルに保存します。

4番目のステップ:

Alipayの開発プロセスを理解し、よく理解してください。写真は、バックエンドプログラムを介したクライアントとAlipayのバックエンド間の相互作用のフローチャートを示しています

1、 ユーザーはAlipayを使用して支払うことを選択します

2、 ユーザーはアプリを使用して、署名された注文情報を取得するためにマーチャントサーバーへのリクエストを開始します

3、 マーチャントサーバーは、署名された注文情報(クエリ文字列またはURL)を返します。次に例を示します。

app_id=201609239&biz_content=%7B%22subject%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu8ba2%5Cu5%22out_trade_no%22%3A%22201702021111%22%2C%22total_amount%22%3A1000%2C%22product_code%22%3A%22FAST_INSTANT_TRADE_PAY%22%7D&charset=utf-8&method=alipay.trade.page.pay&notify_url=http%3A%2F%dus.com%2F&return_url=http%3A%2F%2F47.92.87.172%3A8000%2F&sign_type=RSA2&timestamp=2015+15%3A19%3A15&version=1.0&sign=BSzk6LzwNp

4、 マーチャントアプリが支払いインターフェースを呼び出す

5- 8、 Alipayサーバーはリクエストを受信し、支払い結果を返します。

9、 マーチャントアプリはマーチャントサーバーへの要求を開始し、支払い結果を同期し、サーバーは署名を検証し、支払い結果を解析します。

10、 支払い結果を返します。

11、 マーチャントアプリは支払い結果を表示します。

12、 Alipayサーバーは、支払い通知をマーチャントサーバーに非同期で送信します。

13、 マーチャントサーバーは支払い通知を受信し、Alipayサーバーに応答を返します。

5番目のステップ:

pythonコードは次のとおりです

# 業務処理:pythonsdkを使用してAlipayの支払いインターフェースを呼び出す
# 初期化
fromalipayimportAliPay
alipay=AliPay(
appid="2016092300574189",
app_notify_url=None,
app_private_key_path=r"D:\pythonソースコード\alipay_keys\private_keys",
alipay_public_key_path=r"D:\pythonソースコード\alipay_keys\public_key",
sign_type="RSA2",
debug=True,)
# 通話インターフェース
# total_pay=order.total_price+order.transit_price
total_pay=12311
order_string=alipay.api_alipay_trade_page_pay(
out_trade_no=1231231312313,
total_amount=str(total_pay),
subject='テストテキスト%s'%1,
return_url=None,
notify_url=None,)
# 応答を返す
pay_url="https://openapi.alipaydev.com/gateway.do?"+order_string
print(pay_url)

このコードの機能は、Alipay支払いにアクセスするためのURLである署名付きURLを生成することです。

初期化部分のパラメータ:appidは、Alipayの一意の識別IDです。

app_notify_urlは、Alipayバックエンドの支払いが完了したときにマーチャントに非同期で通知されるバックエンドサーバーのURLアドレスです。

app_private_key_pathは、自分で生成した秘密鍵です。

alipay_public_key_pathは、Alipayの公開キーです。 sign_typeは、署名の暗号化方式です。

debugがtrueの場合、Alipayの支払いURLは非公式の環境であり、オンライン環境の場合はfalseに変更できます。

呼び出し側インターフェース部分のパラメーター:out_trade_noは注文番号です。これは、マーチャントのバックエンドサーバーによって生成された注文番号です。

total_amountは支払い金額(文字列タイプである必要があります)、subjectはタイトル、return_urlは支払いが成功した後にリダイレクトされるページです。

notify_urlは、非同期通知のurlです。

ステップ6:

このコードを実行すると、署名されたURLが取得されます。

このURLにアクセスして、結果を確認してください。

Alipayは、サンドボックス環境で携帯電話にダウンロードするか、右側のログインアカウントをクリックして支払うことができます。支払い用のアカウントとパスワードは、サンドボックスアプリケーションで提供されます。

ステップ7:

ログインして支払いを完了します

拡張の例:

PythonドッキングAlipay支払い自己実装機能

# - *- coding: utf-8-*-import base64
import json
import urllib.parse
from datetime import datetime
import requests
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
classAliPayException(Exception):
 def __init__(self, data):super(AliPayException, self).__init__()
 self.data = data
 def __str__(self):return"alipay - {}".format(self.data)
 def __unicode__(self):return u"alipay - {}".format(self.data)classAliPayVerifyException(AliPayException):
 def __init__(self, msg, data):super(AliPayVerifyException, self).__init__('alipay verify except - {}:{}'.format(msg, data))classAliPay:
 def __init__(self,**kwargs):"""
 : param kwargs:

Recommended Posts

pythonアクセスAlipayの操作例
python accesshdfsの操作
Pythonで実装された特徴抽出操作の例
Pythonの負の弾性率の操作例
word2vec操作のPython予備実装
情報エントロピーの例のPython計算
Pythonリスト理解操作例の概要
python操作redisのいくつかの例
派生物を計算してプロットするpythonの例
Python3.9の7つの機能
Pythonファイル操作
Pythonオブジェクト指向の例
python操作kafka
Python操作の一般的なメソッドの分析Jiraライブラリ
手描き効果の例の共有のPython実装
Python3.7デバッグサンプルメソッド
Python構文の基本
Python操作SQLiteデータベース
Pythonの基本構文
Pythonオブジェクトの属性アクセスプロセスの詳細な説明
Pythonの基礎知識(1)
pythonで写真を自動的にダウンロードする方法の例
pythonのPrettytableモジュール
Python操作yaml命令
Python補間補間の例
09.Python3の共通モジュール
Python-openCVオープン操作の例
Pythonのハードコア操作を1分で学ぶ
Pythonの自動操作とメンテナンス2
Pythonの基盤を統合する(4)
Python操作Excelマージセル
Python(7)の基盤を統合する
pythonリスト(LIST)の深い理解
Pythonのタプルの添え字
wavファイルのPython分析
Python(6)の基盤を統合する
PythonクローラーのJSの分析
栄光のパイソンキング壁紙
Python(5)の基盤を統合する
Python3ロギングログパッケージの例
gomokuプログラムのPython実装
Pythonサンドボックスエスケープの分析
Python3.10のいくつかの新機能
Python正規式サンプルコード
Pythonマルチスレッドの深い理解
Python出力数学記号の例
Pythonの自動操作とメンテナンス1
Pythonオブジェクト指向プログラミングの分析
Python反復可能オブジェクトの重複排除の例
OpenCVインストールのPythonバージョン
Python一次元二次元補間の例
クイックスタートPythonファイル操作
Pythonドローバーグラフ(バーグラフ)の例
Pythonの9つの機能エンジニアリング手法
Pythonの右揃えの例の方法
python描画モジュールのmatplotlib
パラメータを渡すPythonメソッド
Pythonの基盤を統合する(3)
Python共通モジュールのコレクション