google支付接口被刷以及解决方案 google支付查单

google支付接口被刷以及解决方案

google支付回调验证

Google支付问题

20150218,挂机的日本服务器出现google支付被刷单现象,虽然目前进行的修补,但是这个问题并没有完全从根源上解决。并且公司以前的GooglePlay支付也有不完善的地方,在SDK端给支付回调发送支付信息后,支付回调程序没有调用Google API进行订单验证。因此Google支付流程需要进行完善。

Google支付解决方案

上面的支付问题,Google有自己的解决方案,就是根据订单号去向Google API发送验证申请,Google API会返回订单相关信息。可以根据这个信息和SDK返回的信息进行对比验证。

对于申请Google账号之类的流程,相信运营已经很清楚了,但是使用Google API还需要使用Google Developer Console创建Web Application账户,而后获取到client_id、client_secret、refresh_token。具体流程见下面:

1.       登陆 Google Developer Console ,地址:https://code.google.com/apis/console/

2.       在APIs & auth 项中找到 Credentials ,点击创建一个auth2.0 的web 应用

其中4的地址一定是 可用域名 + /oauth2callback

创建完后,可以获得,client_id, client_secret, redirect_url

3.       获取Authorization code

google中心在登陆状态,打开新页面输入如下地址:

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri={REDIRECT_URIS}&client_id={CLIENT_ID}

将蓝色部分根据相应的值进行替换;

这时会提示你是否要授权,点击授权,url地址栏会自动跳转,之后会获得code例如:https://www.example.com/oauth2callback?code=4/CpVOd8CljO_gxTRE1M5jtwEFwf8gRD44vrmKNDi4GSS.kr-GHuseD-oZEnp6UADFXm0E0MD3FlAI

4.       利用code获取refresh_token, 这里需要post请求

请求地址:https://accounts.google.com/o/oauth2/token

请求参数:code, client_id, client_secret, redirect_uri, grant_type

其中 grant_type 值为 authorization_code

第一次发起请求得到的JSON字符串如下所示,以后再请求将不再出现refresh_token,要保存好。expires_in是指access_token的时效,为3600秒

{

"access_token": "ya29.3gC2jw5vm77YPkylq0H5sPJeJJDHX93Kq8qZHRJaMlknwJ85595eMogL300XKDOEI7zIsdeFEPY6zg",

"token_type": "Bearer",

"expires_in": 3600,

"refresh_token": "1/FbQD448CdDPfDEDpCy4gj_m3WDr_M0U5WupquXL_o"

}

在获取到client_id、client_secret、refresh_token后,我们的支付回调程序就可以使用订单号去请求Google Api进行验证。

有爱Google支付回调验证流程

通过上一步获取到client_id、client_secret、refresh_token之后,支付回调程序就可以调用google api进行支付验证。具体流程如下:

1.       获取access_token。

请求地址:https://accounts.google.com/o/oauth2/token
请求方式:post
请求参数:client_id, client_secret, refresh_toke, grant_type
grant_type 值固定为 refresh_token
返回:json

2.       通过获得access_token 就可以请求谷歌的 API 接口,获得订单状态

在这里我所需要获取的是我在应用内给GooglePlay支付的购买信息,此类信息包含以下几个属性:(可参考Google Play Developer API下的Purchases.products

A ProductPurchase resource indicates the status of a user‘s inapp product purchase.

{
  "kind": "androidpublisher#productPurchase",
  "purchaseTimeMillis": long,
  "purchaseState": integer, (purchased:0  cancelled:1,我们就是依靠这个判断购买信息)
  "consumptionState": integer,
  "developerPayload": string
}
请求地址:https://www.googleapis.com/androidpublisher/v2/applications/{$packageName}/purchases/products/{$productId}/tokens/{$purchaseToken}?access_token={$access_token}
请求方式:get
相应替换蓝色的值,google支付回调中包含出access_token外所有的参数值
返回:json

到此支付验证完成!

参考文档:

http://www.vimer.cn/2014/04/google%E6%94%AF%E4%BB%98%E6%8E%A5%E5%8F%A3%E8%A2%AB%E5%88%B7%E4%BB%A5%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html

http://blog.csdn.net/hjun01/article/details/42032841

调用接口遇到的几个问题:

1. Access Not Configured.

{

"error": {

"errors": [

{

"domain": "usageLimits",

"reason": "accessNotConfigured",

"message": "Access Not Configured. The API(Google Play Android Developer API)is not enabled for you project.Please use Google Developers Console to update your configuration."

}

],

"code": 403,

"message": "Access Not Configured. The API(Google Play Android Developer API)is not enabled for you project.Please use Google Developers Console to update your configuration."

}

}

在这个页面: https://console.developers.google.com  

Google Developer Console

1.  "Google Developer Console" > "APIs & Auth" subcategory "APIs" > (api list) "Google Play Android Developer API". Set "STATUS" to "ON".

2.  "APIs & auth" subcategory "Credentials" > "Create new Client ID". Choose "Service account" and create the id.

3.  You should get a P12 key from the browser.

问题2: projectNotLinked

{
    "error": {
        "errors": [
            {
                "domain": "androidpublisher",
                "reason": "projectNotLinked",
                "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
            }
        ],
        "code": 403,
        "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
    }
}

在这个页设置关联:https://play.google.com/apps/publish/

Google Play Developer Console

1.  "Google Play Developer Console" > "Settings" > subcategory "API access".

2.  Make a link to your "Linked Project".

3.  "Service Account" place maybe already showing ur "Service account" CLIENT ID which made "google developer console".

时间: 2024-12-25 11:48:59

google支付接口被刷以及解决方案 google支付查单的相关文章

个人商家怎么申请微信支付接口

微信支付接口:点击进去 一直让大家翘首以盼的微信最核心的杀手锏——“微信支付”终于开放申请了!今天微信团队在官网发布消息,微信公众平台支付功能已正式开放申请,已开通公众号的开发者可以登录公众平台申请App支付功能.未开通公众号的APP开发者,我们将在近期开放,届时可在微信开放平台申请. 微信官方正式宣布,此前尚处于内测阶段的微信支付接口,即日起对通过微信认证的服务号全面开放.需要申请微信支付接口的商家,首先需要申请成为服务号,并在申请微信认证,签订合同并缴纳保证金后,申请全网发布,即可开通微信支

怎样选择给网站选择支付接口

大部分的网站主在给网站选择支付接口时,重点考虑的是以下几个问题: 支付成功率怎样! 帐目是否清晰! 支付成本是否够低! 系统是否安全! 深层次的需求:1.支付记录能否删除,确保用户隐私. 2.能否进行委托分帐结算,相当于分批次结算到不同的帐户.3.能否降低企业成本接入一家就可以支持大部分的第三方平台. 虽然目前互联网上在线支付接口种类很多,不过常见在线支付接口就这几种: 1. 支付宝支付接口集成:支付宝支付接口集成是指支付宝支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的

玩蛇记之用python实现易宝快速支付接口

玩蛇记之用python实现易宝快速支付接口 现在很多这种快速支付的通道,易宝支持的通道算是很全面的,正好最近需要集成易宝的支付通道到平台中,所以写一贴来记录一下,顺便鄙视一下国内的支付平台,api的支持做得很是差劲,易宝的例子代码居然是错的,这么囧的事情都能出现,可见国内的竞争还是不够激烈啊. 进入主题,今天的任务是要打通支付和支付通知接口,根据一般性规则,通过http协议的支付接口的一般设计都是,通过N个field或者查询参数传递数据,其中一个是验证串,防止篡改数据,每个申请了支付接口的用户都

在线支付接口详解

当我们在商城购物时,可能会用到在线支付,你会发现无论你是哪个银行的银行卡接口中都会支持,在做项目开 发时,也经常会用到支付接口,我们当然希望支持所有的网银,但这需要我们针对每个银行开发一套接口吗?不是不可以而是没必要,使用第三方的支付接口就可以 满足,第三方支付平台已经与各大银行进行签约,网站主只需要在此平台申请一个账号即可支持几乎所有的种类的银行卡信用卡的交易,当然是可能支付少量的手续 费的.什么是第三方支付呢? 所谓第三方支付,就是一些和各大银行签约.并具备一定实力和信誉保障的第三方独立机构

说说第三方支付接口开发及开发中遇到的坑爹问题

前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方的网页支付接口,然后遇到很多坑,忍不住想吐槽一下. 一.第三方支付流程 各种支付的文档,业务流程图有的过于简单,有的真的是复杂的不要不要的,开发者看了也是醉,写这些文档的人好像从来不会考虑看的人的感受,所以我觉得有必要在这里简单介绍,我觉得给开发者的流程图大致应该是这样的,而不是一堆用不上的东西在开

php微信支付接口开发程序

php微信支付接口开发程序讲解 微信支付接口现在也慢慢的像支付宝一个可以利用api接口来实现第三方网站或应用进行支付了, 下文整理了一个php微信支付接口开发程序并且己测试,有兴趣的朋友可进入参考. 必要条件: appid //公众号后台开发者中心获得(和邮件内的一样)   mchid//邮件内获得  key//商户后台自己设置  appsecret //公众号开发者中心获得 两个证书文件,邮件内获得 apiclient_cert.pem   apiclient_key.pem 注意事项: 公众

如何开通配资支付接口,目前国内有哪些平台

如果有一个页面想要将价格和产品信息传递给第三方支付平台,则可以在POST和GET中传递该页面.当第三方支付平台接收到参数时,还必须确定身份,因此身份信息也必须一起传输.身份确认后,第三方支付平台开始处理产品信息和价格信息.无论消费者是否成功,都会向消费者返回消息.该返回页面由第三方支付平台设置.支付接口在这个返回页面中写入相关的付款数据信息,从而完成一个简单的付款.接口.2支付接口比较目前市场上第三方支付平台的运营模式可以分为独立和非独立第三方支付模式两种. (1)具有担保功能的非独立第三方支付

统一支付接口设计

1.接口说明 支付接口用于后台根据自己逻辑的单号生成签名用于调起第三方. 2.接口地址 xxx/v1/pay 3.接口格式 上行:Key & Value 下行:JSON 4.协议 HTTP/POST 5.输入参数 参数名 类型 是否必填 备注 token String 是 appId string 否 设备唯一标识 appVersion string 否 APP版本 imei string 否 手机串码 phoneModel string 否 手机型号 timestamp string 是 时间

四方支付系统开发支付接口解决方案聚合支付系统开发

什么是聚合支付? 所谓聚合支付,就是依托银行.三方支付或清算组织的支付通道与清算能力,为客户提供接口.集成.对接.订单处理.数据统计等的支付服务机构. 通过锋锐程序搭建的的聚合系统,可实现聚合SDK,聚合支付场景.聚合支付方式.聚合支付通道,无需寻找想要的支付通道.无需重复对接集成繁琐的支付接口,链接商户和通道.降低接入的技术.沟通门槛.降低通道成本,方便快捷的实现支付接入. 聚合支付是移动互联网时代的结构性的支付服务解决方案! 最近人民银行关于<提升收单服务水平规范和促进收单服务市场的指导意见