修改支付宝服务窗开发者网关

来源:互联网 发布:burpsuite使用教程知乎 编辑:程序博客网 时间:2024/05/16 01:21

接入支付宝服务窗,修改支付宝网关时,总是提示应用网关响应异常等错误,又苦于没有办法查询问题。经过几番调试,总结出些许经验。

主要分为以下几步:

  1. 支付宝发验证网关请求

在商户服务窗后天提交要修改的服务窗网关时,支付宝会给商户网关发送一条验证消息,消息体参考:https://fuwu.alipay.com/platform/doc.htm#c0301 ,跟进demo中记录下的日志请求可以看到有以下几个参数。

POST: array (  'sign' => 'ThtEacndm2asztki8thQeVaF3Xi0yyMQUJrot/HngIGECWyE7Vse48Fp8n8qxWW8D8H8rSkTC56grJm5dCXTC34UJNPTSwQvAWGG4YHFp3jGneAeJ7sLxO9aWffpodIufDpa/ZHEpIzRHaFkv8uD/v9BKrIQo1S9vverZ3izvB3=',  'biz_content' => '<?xml version="1.0" encoding="gbk"?><XML><AppId><![CDATA[20150508000123456]]></AppId><FromUserId></FromUserId><CreateTime><![CDATA[1456215180238]]></CreateTime><MsgType><![CDATA[event]]></MsgType><EventType><![CDATA[verifygw]]></EventType><ActionParam></ActionParam><AgreementId></AgreementId><AccountNo></AccountNo></XML>',  'sign_type' => 'RSA',  'service' => 'alipay.service.check',  'charset' => 'GBK',)
  1. 商户网关出验证请求

从demo中的代码可以看出,商户端需要先验签支付宝发过来的请求,验签公钥使用的是配置上的支付宝公钥。
验签通过后,会回复给支付宝对应商户公钥内容,参看:https://fuwu.alipay.com/platform/doc.htm#c0202_response 。xml中biz_content的内容就是需要配置在支付宝上和配置在商户系统中的商户公钥。
支付宝获取到商户返回的信息后,会使用已配置在支付宝上的公钥(配置入口在修改网关页面的下面一行)来验签商户返回的内容签名是否正确,验签返回正确,并且biz_content内容与支付宝上配置的公钥内容一致,则商户网关修改成功。

3.常见错误

  • 商户网关收不到支付宝请求

自测公网入口访问是否正常


  • 商户网关返回内容或格式不正确,或商户网关抛异常,导致支付宝无法解析商户返回

在日志中找出支付宝发过来的请求参数,自己组装拼接各个参数给商户网关发送post请求,模拟发送post请求的工具有许多,如:Chrome的插件Advanced Rest Client就很好用。

0 0