Closed beimusky closed 1 year ago
res = dc_alipay.server_api( "alipay.system.oauth.token", grant_type="authorization_code", code="85792b3286284f05b985f8dbb510AX82" ) print(res) 这种关键字传参,也报错
你是在什么场景下需要调用这个接口? 这个需要使用到ISVAlipay。
如果你现在的开发任务需要使用到这种程度,我建议你看一下这个库的源代码
主要是看一看对数据进行封装的逻辑,不需要看加解密那一部分。
不然后面的开发会很吃力
使用场景,转账到用户支付宝账户 其中可以使用姓名校验方式和用户user_id方式。 经过实际场景发现,让用户自主填写姓名和账号,容错率太低,多个空格或者多个数字都会失败。导致后期处理异常和重复打款以及沟通用户修改账户成本极高。所以需要通过授权方式,直接拿到user_id ,基本不会出错。 源码我看到611行, raw_string = urlopen(url, timeout=self._config.timeout).read().decode() 是这里解析不成功,实际此时支付宝已经返回正常的数据了。 经过测试 我切换到client_api,直接post拼接的地址,业务没问题。一切正常。 但是,这个业务理论上应该是用server_api的
请使用isvalipay
https://github.com/fzlee/alipay/blob/master/docs/apis_new.zh-hans.md 能否补充下isvalipay使用示例
@fzlee 我也遇到了类似的问题,我跟 @beimusky 的需求一样,使用模式3.0,并且改用 isvalipay 后也是同样的报错。以下是我的代码及报错提示。
`alipay_obj.server_api('alipay.system.oauth.token', biz_content={'grant_type': 'authorization_code', 'code': 'xxx'})
Traceback (most recent call last):
File "
使用场景,转账到用户支付宝账户 其中可以使用姓名校验方式和用户user_id方式。 经过实际场景发现,让用户自主填写姓名和账号,容错率太低,多个空格或者多个数字都会失败。导致后期处理异常和重复打款以及沟通用户修改账户成本极高。所以需要通过授权方式,直接拿到user_id ,基本不会出错。 源码我看到611行, raw_string = urlopen(url, timeout=self._config.timeout).read().decode() 是这里解析不成功,实际此时支付宝已经返回正常的数据了。 经过测试 我切换到client_api,直接post拼接的地址,业务没问题。一切正常。 但是,这个业务理论上应该是用server_api的
@beimusky 你好,“切换到client_api,直接post拼接的地址”请问这个代码是怎么编写的
https://github.com/fzlee/alipay/blob/master/docs/apis.zh-hans.md 使用这种原始的方式,自己拼接请求
url = 'https://openapi.alipay.com/gateway.do?' + dc_alipay.client_api("alipay.user.info.share", **data) res = requests.post(url).json().get('alipay_user_info_share_response')
https://github.com/fzlee/alipay/blob/master/docs/apis.zh-hans.md 使用这种原始的方式,自己拼接请求
url = 'https://openapi.alipay.com/gateway.do?' + dc_alipay.client_api("alipay.user.info.share", **data) res = requests.post(url).json().get('alipay_user_info_share_response')
谢谢,这种方式没问题
接口: https://opendocs.alipay.com/open/02xtla
使用模式3.0: dc_alipay.server_api( "alipay.system.oauth.token", biz_content={ "grant_type": "authorization_code", "code": '85792b3286284f05b985f8dbb510AX82', } )
提示: alipay.exceptions.AliPayValidationError