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服务端文档_米大师服务端说明相关推荐

  1. 谷歌pay服务端文档_腾讯米大师支付服务器端接入流程

    腾讯开放平台的接入是非常麻烦的,文档各种不清不楚的,有些东西文档根本没有写,如果不跟腾讯的技术人员对接的话,你都可能做不出来.虽然他们也没有帮到什么 申请过程就不赘述(申请过程很蛋疼),直接开始接入. ...

  2. Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服务prd文档

    Axure原型作品介绍:Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服 ...

  3. c++编写web服务_让我们编写一个文档样式的Web服务

    c++编写web服务 您可能知道,我们可以使用四种主要的Web服务样式. 它们如下: 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然,现在不建议使用RPC /编码样式. 如果您有兴 ...

  4. activiti 文档_那些可多人协作编辑的在线文档工具

    最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...

  5. 文件夹取消了小米云服务器,小米云服务上线文档在线编辑器:随时保存历史版本...

    IT 之家 11 月 27 日消息   小米官方宣布,互联网时代下,丢失重要文档,就像 80 年代丢了钱包一样痛.为了解决丢失文档的噩梦.小米云服务上线新功能--文档在线编辑器. IT 之家获悉,用户 ...

  6. JEESZ REST服务接口文档

    目    录 1.     引言.................................................................................... ...

  7. Knife4j 2.0.8发布,史诗级微服务聚合文档中间件诞生

    Knife4j前身是swagger-bootstrap-ui,是一个为Swagger接口文档赋能的工具 文档:https://xiaoym.gitee.io/knife4j/(opens new wi ...

  8. 让我们编写一个文档样式的Web服务

    您可能知道,我们可以使用四种主要的Web服务样式. 它们如下: 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然,现在不建议使用RPC /编码样式. 如果您有兴趣,可以在此处找到这篇 ...

  9. SQLServer报表服务研究文档

    SQLServer报表服务研究文档. Ø 研究目的 研究CRM4.0中的报表与sqlserver2005中的报表的集成,如何将CRM中已经制作好的报表导出后在SQLSERVER2005中进行修改后再导 ...

最新文章

  1. [转]Creating Unit Tests for ASP.NET MVC Applications (C#)
  2. Windows 2003 服务器播放FLV的问题解决
  3. py2exe——.py文件转换成exe
  4. FFTW在VS中集成与测试详解
  5. iOS之给WebView导航栏添加“返回”与“关闭”按钮
  6. 在自定义HttpHandler中如何使用Session
  7. 47 张图带你 MySQL 进阶
  8. 华为在鸿蒙的另一张王牌,华为的这两张王牌,将助力Mate40系列角逐安卓机皇的位置...
  9. ubuntu 14.04 将用户目录下中文目录修改为英文目录
  10. oracle apache服务占用80端口
  11. 极品五笔自定义字库(jpwb.emb)
  12. idea 远程调试resin
  13. db2 中sql 拼接字符串
  14. 8uftp使用教程 图解,8uftp使用教程 图解
  15. 近期计算机病毒爆发,最新警示!最新电脑病毒全面爆发,沉寂已久的incaseformat蠕虫病毒肆虐横行!...
  16. MySQL — 数据库的基本概念、安装并配置MySQL、MySQL的基本使用、在项目中操作MySQL、前后端的身份认证
  17. 0602 信用卡防盗刷学习总结
  18. Andriod Studio安装教程
  19. LCL滤波器电容阻尼选择
  20. -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable a

热门文章

  1. Solr面试回答思路
  2. 使用Python获取最新疫情数据,制作可视化动态地图,实时展示各地情况
  3. 使用ArcGIS制作专题等值线图
  4. C#使用Microsoft.office.interop.PowerPoint生成PPT
  5. 苹果芯片订单立功 台积电股价创新高
  6. WebGL、ThreeJS、BabylonJS、SceneJS和Cesium框架对比及简介
  7. Android快递轨迹查询 “KD快递查询”
  8. 精致女生必备软件推荐,有了他们变美不是问题!
  9. [681]小米手机安装charles证书,提示“没有可安装的证书”
  10. 广域网(WAN)简介