python使用python-alipay-sdk支付宝对接

一、获取appid和公私钥 支付宝地址

1.可以使用系统默认的公私钥

python使用python-alipay-sdk支付宝对接_第1张图片
python使用python-alipay-sdk支付宝对接_第2张图片

2.也可以自己生成

获取应用公钥和私钥
使用Web在线加密 —>点击生成密钥
复制应用私钥 然后再 沙箱应用 中点击 -> 自定义密钥,选择公钥,修改就好了,它会自动生成支付宝公钥

将应用公钥复制下来,以这样的格式

        public = """-----BEGIN PUBLIC KEY-----
            应用公钥
            -----END PUBLIC KEY-----
        """

然后将支付宝私钥复制下来,放到文件里以这样的格式

        private = """-----BEGIN RSA PRIVATE KEY-----
            支付宝私钥
            -----END RSA PRIVATE KEY-----
        """
 

二,安装python-alipay-sdk并使用

pip install python-alipay-sdk
from alipay import AliPay
public = """-----BEGIN PUBLIC KEY-----
            应用公钥
            -----END PUBLIC KEY-----
        """
private = """-----BEGIN RSA PRIVATE KEY-----
            支付宝私钥
            -----END RSA PRIVATE KEY-----
        """

class PaymenView(LoginLoginRequiredJSONMixin, View):
    """对接支付宝的支付接口"""

    def get(self, request, order_id):
        """
        :param order_id:当前要支付的订单ID
        :return: JSON
        """

		alipay = AliPay(  # 传入公共参数(对接任何接口都要传递的)
		            appid=APPID,  # 应用ID
		            app_notify_url=None,  # 默认回调url,如果采用同步通知就不传
		            # 应用的私钥和支付宝公钥的路径
		            app_private_key_string=private,
		
		            alipay_public_key_string=public,
		            sign_type="RSA2",  # 加密标准
		            debug=True  # 指定是否是开发环境
		        )
		# SDK对象对接支付宝支付的接口,得到登录页的地址
		order_string = alipay.api_alipay_trade_page_pay(
			   out_trade_no='20219261150100001', # 商品编号,每次提交的时候,不能相同
			   total_amount=str(order.total_amount), # 商品价钱
			   subject="美多商城%s" % order_id, # 名字
			   return_url='http://127.0.0.1:8000/payment/status/' # 回调地址
			  
		)
		# 电脑网站支付(正式环境),需要跳转到https://openapi.alipay.com/gateway.do? + order_string
        # 电脑网站支付(开发环境),需要跳转到https://openapi.alipaydev.com/gateway.do? + order_string
        alipay_url = '支付宝网关' + '?' + order_string
        return http.JsonResponse({'code': RETCODE.OK, 'errmsg': 'OK', 'alipay_url': alipay_url})

我使用过程中出现的问题

1. from alipay import AliPay 没有AliPay

卸了,重下

2. alipay-sdk-python

这个需要C++,应该是在linux环境中使用的

3.RSA key format is not support

public = """
-----BEGIN PUBLIC KEY-----
    应用公钥
-----END PUBLIC KEY-----
        """

这样不行

public = """-----BEGIN PUBLIC KEY-----
            应用公钥
            -----END PUBLIC KEY-----
        """

换成这样,成功了

成功运行图片

python使用python-alipay-sdk支付宝对接_第3张图片

你可能感兴趣的:(第三方,python,django)