谷歌pay服务端文档_米大师服务端说明
1.后台接口说明
1.支付后台接口API
1.1 API
1.1.1 查询余额接口
(1)URL地址
【现网】https:// ysdk.qq.com/mpay/get_balance_m
【沙箱】https://ysdktest.qq.com/mpay/get_balance_m
注(重点):更多服务端文档,请参考米大师文档
(2)功能说明
获取用户游戏币余额
注:由于渠道存在扣费延时的问题,所以在充值完成后调用该接口是建议在2分钟之内间隔15秒多次调用,直到查到当前充值已到账(是否到账可以通过接口返回的save_amt对应的值是否发送变化来判断)
Cookie里面需要包含的参数:
session_id 用户账户类型,(手Q)session_id ="openid";(微信)session_id = "hy_gameid"; (游客) session_id = "hy_gameid"; (h5游戏) session_id ="openid"
session_type session类型,(手Q)session_type = "kp_actoken";(微信)session_type = "wc_actoken" ;(游客) session_type = "st_dummy"; (h5游戏) session_type ="openkey"
org_loc 需要填写: /mpay/get_balance_m
appip (可选)来源的第三方应用的服务IP
注意:cookie里面参数的值,需要进行urlencode
请求参数:
openid:从手Q登录态或微信登录态中获取的openid的值
openkey:手Q登陆时传手Q登陆回调里获取的paytoken值,微信登陆时传微信登陆回调里获取的传access_token值。
appid:offerid,offerid即支付结算页面里的应用id,用于支付接口。
ts:UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
sig:请求串的签名(参考YSDK支付接口签名说明)。
pf:平台来源,登录获取的pf值
pfkey:登录获取的pfkey值
zoneid:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。
userip:(可选)用户的外网IP
accounttype:(可选)帐户类型ID。基础货币(common);安全货币(security);不填,默认common
format:(可选)json、jsonp_$func。默认json。如果jsonp,前缀为:$func
例如:format=jsonp_sample_pay,返回格式前缀为:sample_pay()
(3)返回参数
ret:返回码。0:成功;1001:参数错误;1018:登陆校验失败。
其它:失败
balance:游戏币个数(包含了赠送游戏币)
gen_balance: 赠送游戏币个数
first_save: 是否满足首次充值,1:满足,0:不满足。
save_amt: 累计充值金额的游戏币数量
gen_expire:该字段已作废
tss_list: 月卡信息字段,如果没有月卡该字段值为空
innerproductid 用户开通的订阅物品id(注:该参数为计费分配的订阅物品的servicecode)
begintime 用户订阅的开始时间
endtime 用户订阅的结束时间
paychan 用户订阅该物品id最后一次的支付渠道
paysubchan 用户订阅该物品id最后一次的支付子渠道id
autopaychan 预留扩展字段,目前没有使用
autopaysubchan 预留扩展字段,目前没有使用
grandtotal_opendays 用户订阅累计开通天数
grandtotal_presentdays 用户订阅累计赠送天数
first_buy_time 首充开通时间
extend 预留扩展字段,目前没有使用
(4)返回示例
正确返回示例
Content-type: text/html; charset=utf-8
{
"ret":0,
"balance":3989,
"gen_balance":256,
"first_save":0,
"save_amt":4000,
"gen_expire":0,
"tss_list":[{
"innerproductid" : "1450000594-1001",
"begintime" : "2014-08-21 18:15:24",
"endtime" : "2014-09-20 18:15:24",
"paychan" : "iap",
"paysubchan" : 1,
"autopaychan" : "",
"autopaysubchan" : 0,
"grandtotal_opendays" : 32737,
"grandtotal_presentdays" : 1,
"first_buy_time" : "4457674-07-08 01:37",
"extend" : ""
}
]
}
错误返回示例
Content-type: text/html; charset=utf-8
{"ret":1018,"msg":"请先登录"}
(5)签名示例
第一步,按OpenAPI V3.0的签名生成说明,构造源串。得到的源串为:
GET&%2Fv3%2Fr%2Fmpay%2Fget_balance_m&appid%3D15499%26format%3Djson%26openid%3D00000000000000000000000014BDF
6E4%26openkey%3DAB43BF3DC5C3C79D358CC5318E41CF59%26pf%3Dmyapp_m_qq-00000000-android-00000000-ysdk%26pfkey
%3DCA641BC173479B8C0B35BC84873B3DB9%26ts%3D1340880299%26userip%3D112.90.139.30%26zoneid%3D1
第二步,按OpenAPI V3.0的签名生成说明,构造密钥。得到的密钥为:
56abfbcd12fe46f5ad85ad9f12345678&
第三步,根据HMAC-SHA1加密算法将源串以及密钥进行加密,然后对加密后的字符串经过Base64编码后,得到的Sig的值为:
SqI7fyvtnWBYMfERV8hZc9YQXp0=
请求串:
http://IP/mpay/get_balance_m?appid=15499&format=json&openid=00000000000000000000000014BDF6E4&openkey=AB43BF3DC5
C3C79D358CC5318E41CF59&pf=myapp_m_qq-00000000-android-00000000-ysdk&pfkey=CA641BC173479B8C0B35BC84873B3DB9&ts=
1340880299&userip=112.90.139.30&zoneid=1&sig=SqI7fyvtnWBYMfERV8hZc9YQXp0%3D
1.1.2 扣除游戏币接口
(1)URL地址
https://ysdktest.qq.com/mpay/pay_m
(2)功能说明
扣除用户游戏币。如发货失败,必须调用退款接口(cancel_pay_m)
(3)参数说明
Cookie里面需要包含的参数
session_id 用户账户类型,(手Q)session_id ="openid";(微信)session_id = "hy_gameid"; (游客) session_id = "hy_gameid"; (h5游戏) session_id ="openid"
session_type session类型,(手Q)session_type = "kp_actoken";(微信)session_type = "wc_actoken" ;(游客) session_type = "st_dummy"; (h5游戏) session_type ="openkey"
org_loc 需要填写: /mpay/pay_m
appip (可选)来源的第三方应用的服务IP
注意:cookie里面参数的值,需要进行urlencode
请求参数
openid:从手Q登录态或微信登录态中获取的openid的值
openkey:手Q登陆时传手Q登陆回调里获取的paytoken值,微信登陆时传微信登陆回调里获取的传access_token值。
appid:offerid,offerid即支付结算页面里的应用id,用于支付接口。
ts:UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
sig:请求串的签名(参考YSDK支付接口签名说明)。
pf:登录获取的pf值
pfkey:登录获取的pfkey值
zoneid:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。
amt:扣游戏币数量,atn不能为0。
billno:订单号,业务自定义,业务需要确保全局的唯一性;相同的订单号不会重复扣款。长度不超过63字节,数字和字符不限,不能包含特殊字符如&= | % ^ + 等即可
userip:(可选)用户的外网IP
payitem:(可选)道具名称。
accounttype:(可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
format:(可选)json、jsonp_$func。默认json。如果jsonp,前缀为:$func
例如:format=jsonp_sample_pay,返回格式前缀为:sample_pay()
appremark:(可选)备注。会写到账户流水。
(4)返回参数
示例:
ret:返回码
0:成功;
1004:余额不足。
1018:登陆校验失败。
其它:失败
billno:预扣流水号
balance:预扣后的余额
(5)返回示例
正确返回示例:
Content-type: text/html; charset=utf-8
{"ret" : 0,"billno" : "20102"}
错误返回示例
Content-type: text/html; charset=utf-8
{"ret":1018,"msg":"请先登录"}
1.1.3 取消支付接口
(1)URL地址
https://ysdktest.qq.com/mpay/cancel_pay_m
(2)功能说明
退款。扣费成功,发货失败后,必须调用本接口。如果不调默认将进行扣费确认。
(3)请求参数
Cookie里面需要包含的参数:
session_id 用户账户类型,(手Q)session_id ="openid";(微信)session_id = "hy_gameid"; (游客) session_id = "hy_gameid"; (h5游戏) session_id ="openid"
session_type session类型,(手Q)session_type = "kp_actoken";(微信)session_type = "wc_actoken" ;(游客) session_type = "st_dummy"; (h5游戏) session_type ="openkey"
org_loc 需要填写: /mpay/cancel_pay_m
appip (可选)来源的第三方应用的服务IP
注意:cookie里面参数的值,需要进行urlencode
请求参数:
openid:从手Q登录态或微信登录态中获取的openid的值
openkey:手Q登陆时传手Q登陆回调里获取的paytoken值,微信登陆时传微信登陆回调里获取的传access_token值。
appid:offerid,offerid即支付结算页面里的应用id,用于支付接口。
ts:UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
sig:请求串的签名(参考YSDK支付接口签名说明)。
pf:登录获取的pf值
pfkey:登录获取的pfkey值
zoneid:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。
amt:扣游戏币数量。
billno:预扣流水号。
ts:UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
userip:(可选)用户的外网IP
accounttype:可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
format:可选)json、jsonp_$func。默认json。如果jsonp,前缀为:$func
例如:format=jsonp_sample_pay,返回格式前缀为:sample_pay()
(4)返回参数
ret:返回码
返回码说明
0:成功;
1018:登陆校验失败。
其它:失败
(5)返回示例
JSON示例:
Content-type: text/html; charset=utf-8
{"ret":0 }
错误返回示例
Content-type: text/html; charset=utf-8
{"ret":1018,"msg":"请先登录"}
1.1.4 直接赠送接口
(1)URL地址
https://ysdktest.qq.com/mpay/present_m
(2)功能说明
直接赠接口,可以用于赠送游戏币。赠送的游戏币不参与结算分成。
(3)请求参数
Cookie里面需要包含的参数:
session_id 用户账户类型,(手Q)session_id ="openid";(微信)session_id = "hy_gameid"; (游客) session_id = "hy_gameid"; (h5游戏) session_id ="openid"
session_type session类型,(手Q)session_type = "kp_actoken";(微信)session_type = "wc_actoken" ;(游客) session_type = "st_dummy"; (h5游戏) session_type ="openkey"
org_loc 需要填写: /mpay/present_m
appip (可选)来源的第三方应用的服务IP
注意:cookie里面参数的值,需要进行urlencode
请求参数:
openid:从手Q登录态或微信登录态中获取的openid的值
openkey:手Q登陆时传手Q登陆回调里获取的paytoken值,微信登陆时传微信登陆回调里获取的传access_token值。
appid:offerid,offerid即支付结算页面里的应用id,用于支付接口。
ts:UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
sig:请求串的签名(参考YSDK支付接口签名说明)。
pf:登录获取的pf值
zoneid:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。
pfkey:登录获取的pfkey值
presenttimes:表示要赠送游戏币的个数,大于零的整数。
billno:订单号,业务自定义,业务需要确保全局的唯一性;相同的订单号不会重复扣款。长度不超过63字节,数字和字符不限,不能包含特殊字符如&= | % ^ + 等即可
userip:(可选)用户的外网IP
format:(可选)json、jsonp_$func。默认json。如果jsonp,前缀为:$func
例如:format=jsonp_sample_pay,返回格式前缀为:sample_pay()
(4)返回参数
ret:返回码
0:成功
非0:失败
1018:登陆校验失败。
2.1.3.5.返回示例
正确返回示例:
Content-type: text/html; charset=utf-8
{"ret":0}
错误返回示例
Content-type: text/html; charset=utf-8
{"ret":1018,"msg":"请先登录"}
1.1.5 应用消耗游戏币买道具一般流程
2. FAQ
2.1 Q:android版本要求?
A:该支付SDK支持android2.1及以上版本
2.2 Q:SDK支付完成后,能否通知应用充值数量及是否充值成功?
A:Q点Q币、Q卡是实时到账,财付通渠道、快捷、手机充值卡为非实时到账,所以SDK也无法实时确定发货成功。而且SDK回调通知应用购买数量及是否成功存在安全隐患,因为这个是本地调用。应用可以通过调用后台API向服务器发起请求查询用户余额。
2.3 Q:调用SDK时pf和pfkey如何确定?
A:pf为应用侧构造传递给SDK。pf的格式为平台标识信息:平台-渠道-系统运行平台-业务自定义。渠道表示应用发布的渠道:如应用宝、豌豆荚等,用数字表示(具体如何表示业务侧定义,SDK侧不关心)。系统运行平目前支持android、ios
例如:
手Q:openmobile_android-2001-android-xxxx
pfKey为应用所在平台下方,SDK侧不关心,只做透传处理。对应自研应用后台对pfKey不做校验,应用可以传递为pfKey = “pfKey”。对于非自研应用后台强校验,应用需要从开放平台侧获取传递给SDK。
2.4 Q:什么是基础货币和安全货币?
A:基础货币:普通支付应用场景使用,充值基础货币后,用于普通购买行为。满足常用的支付需求。
安全货币:如果应用有特殊要求,例如:要求寄售道具场景(玩家之间的道具买卖)只能用特殊的货币进行交易,那么可以使用安全货币,区别于基础货币,安全货币也用于购买道具。(可选货币)
2.5 Q:支付时为什么会登录态过期?
A:支付的登录态时效性要求比较高,因此需要应用拉起支付时,先更新下登录态,这样能保证支付过程中尽可能出现少的登录态失效。如果用户在支付页面停留过长时间,支付时提示登录态过期,支付会回调应用,
应用应该再重新获取用户的登录态再进行支付。如果应用在接入联调时一直出现登录态过期,支付的log中出现错误码1018,那就说明传递的参数是有误的,请确认sessionId,sessionType,userId和userKey的正确性,
具体请参看调用接口时的参数说明。如果还提示1018错误,请确认应用在微信,手Q平台上申请的ID和Key 和支付接入时配置的一致。
2.6 Q:道具直购和购买游戏币有什么区别
A:购买游戏币需要对货币进行托管,而道具则不需要托管。购买游戏币由腾讯支付服务端负责发货。购买道具需要应用侧提供发货回调接口,当腾讯服务端扣款后回调应用的发货接口。
3. 附录
3.1 SDK弹框错误错误码
1001-xxxx-xxxx 表示参数错误
1003-50000X-xxxx 表示应用侧发货失败
2. 后台接口签名说明
1.签名生成总体说明
本文档仅适用于YSDK 支付相关接口的签名生成,由于是通用说明,本文中仅以/mpay/get_balance_m的签名生成作为示例。
签名值sig是将请求源串以及密钥根据一定签名方法生成的签名值,用来提高传输过程参数的防篡改性。
签名值的生成共有3个步骤:构造源串,构造密钥,生成签名值。详见下面的描述。
Step 1. 构造源串
源串是由3部分内容用“&”拼接起来的: HTTP请求方式 & urlencode(uri) & urlencode(a=x&b=y&...)
特别注意构造签名里URI需要在实际的URI前加入/v3/r/,比如请求/mpay/get_balance_m,则签名时的uri路径为/v3/r/mpay/get_balance_m
源串构造步骤
第1步:将请求的URI路径进行URL编码(URI不含host,URI示例:/v3/r/mpay/get_balance_m,)。
请开发者关注:URL编码注意事项,否则容易导致后面签名不能通过验证。
第2步:将除“sig”外的所有参数按key进行字典升序排列。
注:除非OpenAPI文档中特别标注了某参数不参与签名,否则除sig外的所有参数都要参与签名。
第3步:将第2步中排序后的参数(key=value)用&拼接起来,并进行URL编码。
请开发者关注:URL编码注意事项,否则容易导致后面签名不能通过验证。
第4步:将HTTP请求方式(GET或者POST)以及第1步和第3步中的字符串用&拼接起来。
注:Java_SDK_V3.0.6仅支持POST方式,如果用GET可能导致一直计算sig不正确。
源串构造示例如下
(由于是通用说明,这里以/mpay/get_balance_m作为示例,且示例中的请求串不可直接复制访问)
1. 原始请求信息:
appkey:56abfbcd12fe46f5ad85ad9f12345678
HTTP请求方式:GET
请求的URI路径(不含HOST,注意加入/v3/r/):/v3/r/mpay/get_balance_m
请求参数:appid=15499&format=json&openid=00000000000000000000000014BDF6E4&openkey=AB43B
F3DC5C3C79D358CC5318E41CF59&pf=myapp_m_qq-00000000-android-00000000-ysdk&pfkey=CA641BC173479
B8C0B35BC84873B3DB9&ts=1340880299&userip=112.90.139.30&zoneid=1
2. 下面开始构造源串:
第1步:将请求的URI路径进行URL编码,得到: %2Fv3%2Fr%2Fmpay%2Fget_balance_m
第2步:将除“sig”外的所有参数按key进行字典升序排列,排列结果为:appid,format,openid,openkey,pf,pfkey,ts,userip,zoneid
第3步:将第2步中排序后的参数(key=value)用&拼接起来:
appid=15499&format=json&openid=00000000000000000000000014BDF6E4&openkey=AB43BF3DC5C3C79D358CC5318E41
CF59&pf=myapp_m_qq-00000000-android-00000000-ysdk&pfkey=CA641BC173479B8C0B35BC84873B3DB9&ts=1340880299&
userip=112.90.139.30&zoneid=1
然后进行URL编码( (编码时请关注URL编码注意事项,否则容易导致后面签名不能通过验证),编码结果为:
appid%3D15499%26format%3Djson%26openid%3D00000000000000000000000014BDF6E4%26openkey%3DAB43BF3DC
5C3C79D358CC5318E41CF59%26pf%3Dmyapp_m_qq-00000000-android-00000000-ysdk%26pfkey%3DCA641BC173479B8
C0B35BC84873B3DB9%26ts%3D1340880299%26userip%3D112.90.139.30%26zoneid%3D1
第4步:将HTTP请求方式,第1步以及第3步中的到的字符串用&拼接起来,得到源串:
GET&%2Fv3%2Fr%2Fmpay%2Fget_balance_m&appid%3D15499%26format%3Djson%26openid%3D0000
0000000000000000000014BDF6E4%26openkey%3DAB43BF3DC5C3C79D358CC5318E41CF59%26pf%3Dmyapp_m_qq-
00000000-android-00000000-ysdk%26pfkey%3DCA641BC173479B8C0B35BC84873B3DB9%26ts%3D1340880299%26
userip%3D112.90.139.30%26zoneid%3D1
Step 2. 构造密钥
得到密钥的方式:在应用的appkey末尾加上一个字节的“&”,即appkey&,注意这里的appkey指的是米大师的appkey, 测试环境用沙箱appkey, 正式环境用正式环境的appkey,例如:
56abfbcd12fe46f5ad85ad9f12345678&
Step 3. 生成签名值
(1)使用HMAC-SHA1加密算法,使用Step2中得到的密钥对Step1中得到的源串加密。
(注:一般程序语言中会内置HMAC-SHA1加密算法的函数,例如PHP5.1.2之后的版本可直接调用hash_hmac函数。)
(2)然后将加密后的字符串经过Base64编码。
(注:一般程序语言中会内置Base64编码函数,例如PHP中可直接调用 base64_encode() 函数。)
(3)得到的签名值结果如下:
SqI7fyvtnWBYMfERV8hZc9YQXp0=
(4)发送请求时所有参数都要进行URL编码。对签名Sig进行编码,会得到如下结果:
SqI7fyvtnWBYMfERV8hZc9YQXp0%3D
最后发送的请求串
http://域名/mpay/get_balance_m?appid=15499&format=json&openid=0000000000000
0000000000014BDF6E4&openkey=AB43BF3DC5C3C79D358CC5318E41CF59&pf=myapp_m_qq-00000000-andr
oid-00000000-ysdk&pfkey=CA641BC173479B8C0B35BC84873B3DB9&ts=1340880299&userip=112.90.139.30
&zoneid=1&sig=SqI7fyvtnWBYMfERV8hZc9YQXp0%3D
2. 常见错误排障
为什么总是返回“-5:signature verification failed”?
签名校验失败分为以下两种情况:
(1) sig参数生成错误
有可能由下列原因引起:
• 构造源串时注意URI不含host,并且要加上/v3/r,如访问https:// ysdk.qq.com/mpay/get_balance_m,则对应签名的URI是/v3/r/mpay/get_balance_m,而不是/mpay/get_balance_m;
• 构造源串时,没有将key排序后,再将(key=value)用&拼接起来。
• 构造密钥时,没有将appkey后加“&”。
• 生成签名时用了GET方式,但实际请求时用POST方式。
• 某些语言的URLEncode系统方法在进行URL编码时,并没有按照现行的URL编码规则进行。详见下文的:URL编码注意事项。
对于支付和营销类接口,除了以上问题外,还有一些特别容易出错的地方:
• 支付和营销相关回调协议中规定参数值都为string型,开发商出于本地记账等目的,对接收到的某些参数值先转为数值型再转为string型,导致字符串部分被截断(例如:字符串“13.14”转为整形再转为string 就会变成13),从而导致签名出错。
如果要进行本地记账等逻辑,建议用另外的变量来保存数值,传参时必须用原始接收到的string型值。
• 支付和营销相关回调协议中,在进行签名生成时多加了一个步骤:
在构造源串的第3步“将排序后的参数(key=value)用&拼接起来,并进行URL编码”之前,需对value先进行一次编码 (编码规则为:除了 0~9 a~z A~Z !*() 之外其他字符按其ASCII码的十六进制加%进行表示,例如“-”编码为“%2D”)。
• 支付和营销接口中的goodmeta参数,必须是UTF8格式,参与签名前要进行Base64编码。
• 支付和营销接口中的payitem参数,含有*号字符,在进行URL编码时要注意观察是否进行了编码。
(2) sig参数生成正确,但是参数传输前没有进行URL编码。
所有参数传输时都要进行URL编码,包括sig。如果没有进行URL编码,则即使sig是正确的,但是校验sig时不能匹配。
建议的解决方案:
(1)开发者可以使用平台提供的签名验证工具来计算签名:http://open.qq.com/tools , 通过工具吐出的签名生成过程,来排查具体是哪一步出了问题。
(2)如果您是PHP开发者,可以使用PHP SDK中的签名生成函数来生成签名,避免自己去进行复杂的签名生成逻辑的开发。
3. URL编码注意事项
URL编码规则:
签名验证时,要求对字符串中除了“-”、“_”、“.”之外的所有非字母数字字符都替换成百分号(%)后跟两位十六进制数。
十六进制数中字母必须为大写。
注意事项
(1)某些系统方法,例如.NET系统方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D,导致加密签名通不过验证,请开发者注意检查。
(2)Java 1.3和早期版本中,调用java.net.URLEncoder下的方法进行URL编码时,某些特殊字符并不会被编码,例如星号(*)。
由于URL编码规则中规定了星号(*)必须编码,因此在请求字符串中含星号(*)的情况下如果使用了上述方法,会导致生成的签名不能通过验证。
例如调用v3/pay/buy_goods接口时, payitem参数值中一定会含有* ,在使用类java.net.URLEncoder下的方法进行编码后,需开发人员手动将星号字符“*”替换为“%2A”,否则将导致加密签名一直通不过验证,请开发者注意检查。
(3)某些语言的urlencode方法会把“空格”编码为“+”,实际上应该编码为“%2B”。这也将生成错误的签名,导致签名通不过验证。
请开发者注意检查,手动将“+”替换为“%2B”。
在PHP中,推荐用rawurlencode方法进行URL编码。
以上信息是否解决您的问题?
是否
为了我们更有效的优化资料库,以及针对性的改善我们的服务,我们很需要您进一步的反馈信息:页面内容不全面,不深入
页面内容更新不及时
描述不够清晰,比较混乱
系统或功能太复杂,同时文档也缺乏足够的引导
提交成功!
非常感谢您的反馈,我们将继续努力做到更好!
提交成功!
感谢您的批评与建议,我们将针对性的进行优化,为您提供更好的服务。
开放平台与您一同成长!
谷歌pay服务端文档_米大师服务端说明相关推荐
- 谷歌pay服务端文档_腾讯米大师支付服务器端接入流程
腾讯开放平台的接入是非常麻烦的,文档各种不清不楚的,有些东西文档根本没有写,如果不跟腾讯的技术人员对接的话,你都可能做不出来.虽然他们也没有帮到什么 申请过程就不赘述(申请过程很蛋疼),直接开始接入. ...
- Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服务prd文档
Axure原型作品介绍:Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服 ...
- c++编写web服务_让我们编写一个文档样式的Web服务
c++编写web服务 您可能知道,我们可以使用四种主要的Web服务样式. 它们如下: 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然,现在不建议使用RPC /编码样式. 如果您有兴 ...
- activiti 文档_那些可多人协作编辑的在线文档工具
最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...
- 文件夹取消了小米云服务器,小米云服务上线文档在线编辑器:随时保存历史版本...
IT 之家 11 月 27 日消息 小米官方宣布,互联网时代下,丢失重要文档,就像 80 年代丢了钱包一样痛.为了解决丢失文档的噩梦.小米云服务上线新功能--文档在线编辑器. IT 之家获悉,用户 ...
- JEESZ REST服务接口文档
目 录 1. 引言.................................................................................... ...
- Knife4j 2.0.8发布,史诗级微服务聚合文档中间件诞生
Knife4j前身是swagger-bootstrap-ui,是一个为Swagger接口文档赋能的工具 文档:https://xiaoym.gitee.io/knife4j/(opens new wi ...
- 让我们编写一个文档样式的Web服务
您可能知道,我们可以使用四种主要的Web服务样式. 它们如下: 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然,现在不建议使用RPC /编码样式. 如果您有兴趣,可以在此处找到这篇 ...
- SQLServer报表服务研究文档
SQLServer报表服务研究文档. Ø 研究目的 研究CRM4.0中的报表与sqlserver2005中的报表的集成,如何将CRM中已经制作好的报表导出后在SQLSERVER2005中进行修改后再导 ...
最新文章
- [转]Creating Unit Tests for ASP.NET MVC Applications (C#)
- Windows 2003 服务器播放FLV的问题解决
- py2exe——.py文件转换成exe
- FFTW在VS中集成与测试详解
- iOS之给WebView导航栏添加“返回”与“关闭”按钮
- 在自定义HttpHandler中如何使用Session
- 47 张图带你 MySQL 进阶
- 华为在鸿蒙的另一张王牌,华为的这两张王牌,将助力Mate40系列角逐安卓机皇的位置...
- ubuntu 14.04 将用户目录下中文目录修改为英文目录
- oracle apache服务占用80端口
- 极品五笔自定义字库(jpwb.emb)
- idea 远程调试resin
- db2 中sql 拼接字符串
- 8uftp使用教程 图解,8uftp使用教程 图解
- 近期计算机病毒爆发,最新警示!最新电脑病毒全面爆发,沉寂已久的incaseformat蠕虫病毒肆虐横行!...
- MySQL — 数据库的基本概念、安装并配置MySQL、MySQL的基本使用、在项目中操作MySQL、前后端的身份认证
- 0602 信用卡防盗刷学习总结
- Andriod Studio安装教程
- LCL滤波器电容阻尼选择
- -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable a
热门文章
- Solr面试回答思路
- 使用Python获取最新疫情数据,制作可视化动态地图,实时展示各地情况
- 使用ArcGIS制作专题等值线图
- C#使用Microsoft.office.interop.PowerPoint生成PPT
- 苹果芯片订单立功 台积电股价创新高
- WebGL、ThreeJS、BabylonJS、SceneJS和Cesium框架对比及简介
- Android快递轨迹查询 “KD快递查询”
- 精致女生必备软件推荐,有了他们变美不是问题!
- [681]小米手机安装charles证书,提示“没有可安装的证书”
- 广域网(WAN)简介