使用PNS(Push Notification Service)
Last updated
Last updated
ONE store为开发者提供两种Push Notification Service。
第一种是PNS(Payment Notification Service,支付通知服务),当发生In-App商品支付或取消支付时,ONE store向开发公司服务器发送通知。
第二种是SNS(Subscription Notifacation Service,订阅通知服务),在订阅状态发生变化时向开发公司服务器发送通知。
注意
由于notification可能因发送/接收服务器的状态而延迟或丢失,因此不建议以接收notification为准提供App商品(服务)。
如果您想以服务器到服务器方式确认是否正常付款,我们建议您使用相关服务器API进行查询,而不是使用PNS notification。
ONE store可能会进行付款测试以便验证和监控,在付款/取消付款时,这些测试也会收到同样的notification。ONE store的付款测试历史记录会定期由ONE store自行取消。
您可以通过点击"开发者中心>Apps>App商品选择>In-App信息"菜单中的"管理PNS"按钮来设置接收PNS的开发公司服务器的URL。
URL可以分别设置Sandbox(开发用)支付环境和商用(包括商用测试)支付环境,如果开发用/商用服务器相同,则输入相同的URL即可。
URI : 在开发者中心设置的 Payment Notification URL
Method : POST
Request Parameters : N/A
Request Header
Request Body : JSON格式
Example
使用下面的代码,您可以检查signature是否伪造。
"代码"中的PublicKey是指"开发者中心 > Apps > In-App信息 > 认证和许可 证"中提供的许可证密钥。 有关许可证密钥的详细信息,请参阅 "In-App支付的预准备页面的"验证许可证密钥和OAuth认证信息"部分。
URI : 在开发者中心设置的Subscription Notification URL
Method : POST
Request Parameters : N/A
Request Header
Request Body : JSON格式
Example
ONE store中的PNS服务器通过HTTP(S)请求向开发公司服务器发送notification。
此时,开发公司服务器应以200响应HTTP Status Code,表示已正常接收notification。
如果由于网络延迟而丢失,或者由于开发公司服务器的异常情况,HTTP Status Code未能以200进行响应,PNS服务器将认为notification传输失败,并在3天内最多执行30次重传。
Notification的重传是在具有一定delay后执行,如下例所示,当重试次数增多时,delay会逐渐增加。 Example