Closed answer0732 closed 4 years ago
另外想问下如何能让回调返回自定义参数,比如用户id(我自己的网站用户),我需要知道是谁充值的啊。 在order_string中加入自定义参数,异步回调里面没有反应啊
order_string = alipay.api_alipay_trade_app_pay(
out_trade_no=xxxxx
notify_url=xxxxx',
subject=subject,
total_amount=total_amount,
#下面的两个参数,异步回调中没有得到,不知该怎么用
user_id=1,
test='hello',
)
django应该使用 request.dict()
restframework里面的request.data, 应该不是QueryDict对象,是可以直接修改的.
你可以print(type(request)) 看看这个request是哪一个框架下的class.
你可以参看这个文档 https://docs.open.alipay.com/api_1/alipay.trade.app.pay
使用passback_params
十分感谢
我也是遇到这个问题,按照楼主的修改就可以了
你好,测试了一下午,django版本的通知验证貌似有处需要改正(restframework用户)
data = request.data
这个会报错:This QueryDict instance is immutable
官方解释:在正常的请求/响应周期中访问时,QueryDicts request.POST和request.GET将是不可变的。要获得可变版本,您需要使用QueryDict.copy()。
改成:data = request.data.copy()
另外上面这个还需要转化一下,它是querydict类型,不是dict,直接使用会在verify验证环节报出AliPayException异常(貌似在querydict中是列表形式):
None, "Unknown sign type: ['RSA2']
最终改成:
data = (request.data.copy()).dict()
示例代码就能正常执行了