我必须在我的项目中实现paystation支付网关,这个网关响应有两种方式,在事务一个返回url和其他POST post url,post url在后端工作,因为它适用于所有其他支付网关,它返回POST url上的所有与支付相关的响应,它以XML格式返回结果。
我想在我的电子邮件中发送此回复,以便我可以检查响应参数,因此我使用此代码。
def payment_post(request):
responseData = xmltodict.parse(request.POST)
msg = EmailMultiAlternatives('Post Parameters', responseData, 'exampleFrom@gmail.com', ['exampleTo@gmail.com'])
msg.send()
它没有向我发送有关我的电子邮件ID的任何详细信息,但是当我使用此代码时
msg = EmailMultiAlternatives('Post Parameters', 'Testing data', 'exampleFrom@gmail.com', ['exampleTo@gmail.com'])
msg.send()
它向我发送带有“测试数据”的邮件。作为邮件内容和' POST参数'作为主题,所以这意味着在解析xml时存在一些问题,或者我没有得到任何回复的帖子数据。
所以我想查看错误,有什么方法可以获取此错误详细信息,我可以在我的电子邮件ID上发送错误详细信息吗?
编辑: - 我收到此xml回复
<?xml version="1.0" standalone="yes"?>
<InitiationRequestResponse>
<Username>
605002
</Username>
<RequestIP>
203.118.134.77
</RequestIP>
<RequestUserAgent/>
<RequestHttpReferrer/>
<PaymentRequestTime>2008-10-02 15:59:29</PaymentRequestTime>
<DigitalOrder>
https://payments.paystation.co.nz/hosted/?hk=KBzTIBy5oYEI
</DigitalOrder>
<DigitalOrderTime>2008-10-02 15:59:30</DigitalOrderTime>
<DigitalReceiptTime/>
<PaystationTransactionID>0000000466-01</PaystationTransactionID>
</InitiationRequestResponse>
由于
答案 0 :(得分:0)
我希望你需要一个XML
字符串需要xmltodict
库parse
函数,
首先,您需要从XML
获取POST
字符串,所需的代码更改类似于以下代码,需要注意的要点,
request.FILES ['filename']。read(),如果要上传文件(xml文件),其中表格键是'文件名'。
import json
def payment_post(request):
responseData = xmltodict.parse(request.POST['data'])
responseString = json.dumps(responseData) # or you can use just str(responseData) if you have simple data values
msg = EmailMultiAlternatives('Post Parameters', responseString, 'exampleFrom@gmail.com', ['exampleTo@gmail.com'])
msg.send()
如果该内容正在获取POST
表单键&amp;值为dict,request.POST是QueryDict对象而不是你需要的,因为代码可以改为
def payment_post(request):
responseData = xmltodict.parse(request.POST.dict())
msg = EmailMultiAlternatives('Post Parameters', responseData, 'exampleFrom@gmail.com', ['exampleTo@gmail.com'])
msg.send()