问题描述
希望你们一切都好。
目前,我正在一个网站上工作,在那里我销售黄金和角色等游戏物品。我正在通过 Coinbase 接收付款。在 Coinbase 上成功付款后,我想在 Zendesk 聊天框中发送来自付款用户的消息。
我使用的技术
- 用于后端的 Django
- 用于前端的 HTML、CSS 和 JS
到目前为止我做过的事情
def buy_osrs(request):
obj = Setting.objects.first()
osrs_price = getattr(obj,"osrs_price")
osrs_fee = getattr(obj,"osrs_fee")
form = OSRSForm()
site = get_current_site(request).domain
payment_success = f"https://{site}/payment/"
if request.method == "POST":
form = OSRSForm(request.POST)
if form.is_valid():
form.save()
total = float(form.cleaned_data.get("osrs_numbers")) * osrs_price + osrs_fee
charge_info = {
"name": "My Website","description": "My Website Description","local_price": {"amount": total,"currency": "USD"},"pricing_type": "fixed_price","Metadata": {"rsn": form.cleaned_data.get("rsn"),"email": form.cleaned_data.get("email")},"redirect_url": payment_success,}
charge = client.charge.create(**charge_info)
return redirect(charge.get("hosted_url"))
context = {
"form": form,"osrs_price": osrs_price,"osrs_fee": osrs_fee,}
return render(request,"main/buy_osrs.html",context)
- 我设法设置并接收了网络钩子,它根据从 Coinbase 获得的响应更改了我的数据库。
@csrf_exempt
def coinbase_webhook(request):
if request.method == "POST":
# event payload
request_data = request.body.decode("utf-8")
# webhook signature
request_sig = request.headers.get("X-CC-Webhook-Signature")
try:
# signature verification and event object construction
event = Webhook.construct_event(request_data,request_sig,settings.SECRET_KEY)
obj,created = CoinbaSEOrder.objects.get_or_create(order_id=event.id,code=event.data.code)
if event.type == "charge:pending":
obj.status = "Pending Confirmation"
obj.save()
elif event.type == "charge:confirmed":
obj.status = "Payment Confirmed"
obj.save()
elif event.type == "charge:delayed":
obj.status = "Payment Delayed"
obj.save()
elif event.type == "charge:resolved":
obj.status = "Payment Resolved"
obj.save()
elif event.type == "charge:Failed":
obj.status = "Payment Failed"
obj.save()
except (WebhookInvalidPayload,SignatureVerificationError) as e:
return str(e),400
return HttpResponse()
我想要的东西
现在我的要求是每当 event.type == "charge:confirmed"
发生时,最终用户应该在 Zendesk 实时聊天框中发送一条自动消息,说,嗨,我是 ABC。我已经付给你 XYZ 金额。
我认为这是不可能通过 webhook 实现的,为此我必须使用 jquery 或其他一些技术。所以请指导我什么是最好的策略
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)