接口 | 描述 |
|---|---|
获取服务提供商。 | |
使用支付完成付款。 | |
托管商品的支付,托管商品是指在华为AppGallery Connect中维护的商品。 | |
用于从华为PMS系统获取商品详情。请开发者避免从自有服务端获取商品信息,否则可能导致应用内商品价格和华为支付收银台价格不一致。 | |
查询当前用户已订购的非消耗商品订单信息。 | |
查询订单详情,所有调用pay接口的订单均可查询,用于在丢单的情况下复核订单。 | |
查询是否支持Huawei Pay线上支付。 | |
拉起Huawei Pay线上支付。 |
描述
获取服务提供商。
返回值
字符串,服务提供商的代号,如厂商的英文品牌名称,如果无此服务则返回空字符串。返回空字符串时,请勿调用该服务其他接口,否则将抛出异常。
示例代码
pay.getProvider();
描述
使用支付完成付款。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
orderInfo | json | 是 | 订单信息,详细信息请参见“orderInfo参数说明”。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
orderInfo参数说明:
参数 | 类型 | 是否必选 | 是否参与签名 | 说明 |
|---|---|---|---|---|
productName | string(0,50) | 是 | 是 | 商户对商品的自定义名称。此名称将会在支付时显示给用户确认。该字段中不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | % + |
productDesc | string(0,100) | 是 | 是 | 商品描述, 商户对商品的自定义描述 。该字段中不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | % + |
applicationID | string(0,100) | 是 | 是 | 应用ID,在华为开发者联盟上获取的APP ID。 |
requestId | string(0,32) | 是 | 是 | 商户订单号。 来源:在支付前生成,用于唯一标识一次支付请求。支付平台在服务器回调接口中会原样返回requestId的值。该字段由字母和数字组成,必须在商户内唯一,用于唯一标识一个商户订单。 |
amount | string | 是 | 是 | 商品金额,商品所要支付金额。此金额将会在支付时显示给用户确认。 注意:
|
merchantId | string | 是 | 是 | 商户ID。 来源:在华为开发者联盟上获取的“支付ID”。 |
serviceCatalog | string | 是 | 否 | 商品类型。
游戏设置为"X6",应用设置为"X5"。如果传入类型错误,会影响风控,请商户按照真实业务类型传入。 |
merchantName | string(0,50) | 是 | 否 | 商户名称。 来源:开发者注册的公司名。 |
sdkChannel | int | 是 | 是 | 渠道信息,取值如下
游戏设置为3,应用设置为1。 |
url | string(0,255) | 否 | 是 | 支付结果回调地址 。 华为服务器收到后检查该应用有无在开发者联盟配置回调URL,如果配置了则使用应用配置的URL,否则使用此url作为该次支付的回调URL。 注:必须是合法的url,长度最大255,不能以‘\’结尾,不能包含get参数。 例: 正确:https://domain.com/path 错误:https://domain.com/path?key=value |
currency | string | 否 | 是 | 币种,用于支付的币种。如USD、CNY、MYR等,符合ISO 4217。 参见“https://www.iso.org/iso-4217-currency-codes.html”。 如果不填写则默认为CNY。 |
country | string | 否 | 是 | 国家码,用于区分国家信息。如US、CN、MY,符合ISO 3166标准。 参见“https://www.iso.org/iso-3166-country-codes.html”。 如果不填写则默认为CN。 |
urlver | string | 否 | 是 | 支付结果回调版本。 该值可以不传,如果传值则固定值传2,如果不传2会导致支付不成功。 |
extReserved | string(0,128) | 否 | 否 | 商户侧保留信息。该字段中不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | % + 若该字段有值,在华为支付服务器回调接口中原样返回。 |
sign | string | 是 | 否 |
生成的签名可使用华为快应用IDE进行校验,详细内容参见“华为快应用IDE验证支付签名工具使用指导”。 |
expireTime | string | 否 | 是 | 客户端订单超时时间(仅扫码支付可用)。 该字段暂未对外开放,请不要使用。 |
partnerIDs | string | 否 | 是 | 收款账户ID列表,json数组。 该字段暂未对外开放,请不要使用。 |
validTime | int | 否 | 否 | 客户端订单有效期。 订单在支付界面停留的有效时长(单位:秒),超出该时长再进行支付时,将弹框提示用户订单失效,并且确认后将退出支付,返回错误码给业务侧。 该参数传值,不能小于支付设定的默认值(目前为60秒),如果小于该值,则订单有效期赋值为默认值。 如果本参数不传递,支付侧将不设置有效期。 该字段暂未对外开放,请不要使用。 |
publicKey | string | 是 | 否 | 公钥,在华为开发者联盟上开通应用内支付服务获取的“支付公钥”,获取方式参见“开通应用内支付服务”中的“使用支付2.0接口”章节。 |
success返回值:
参数 | 类型 | 说明 |
|---|---|---|
result | string | 支付结果。 |
fail错误返回码:
参数 | 类型 | 说明 |
|---|---|---|
code | number | 返回状态码。 |
data | string | 消息内容。 |
fail异常码返回,不同的厂商提供的异常码会有差异,具体的异常码需要和厂商支付接口对接。
示例代码
pay.pay({
orderInfo: {
"amount": 0.01, //商品金额
"applicationID": "100389777", //应用ID,在华为开发者联盟上获取的APP ID
"productDesc": "商品描述",
"productName": "商品名称",
"serviceCatalog": "X5", //游戏设置为"X6",应用设置为"X5"
"merchantId": "900086001817", //华为开发者联盟上申请应用内支付服务获取的“支付ID“
"merchantName": "商户名称", //商户名称
"sign": "xxxxxxxxxxxxxxxx", //签名
"requestId": "xxxxxxxxxxxxxx", //在支付前生成,用于唯一标识一次支付请求。支付平台在服务器回调接口中会原样返回requestId的值
"urlver": "2", //固定值为2
"sdkChannel": 1, //游戏设置为3,应用设置为1
"publicKey": "MIIBIjANBgkqhkiG9w0BZZJgtNpEi0wIDAQAB" //华为开发者联盟上申请应用内支付服务获取的“支付公钥”
},
success: function (ret) {
prompt.showToast({
message: "支付结果:" + JSON.stringify(ret)
})
},
fail: function (erromsg, errocode) {
prompt.showToast({
message: 'pay fail --- ' + errocode + ':' + erromsg
});
}
}) 描述
托管商品的支付,托管商品是指在华为AppGallery Connect中维护的商品。
OBJECT参数
参数 | 类型 | 是否必填 | 是否参与签名 | 说明 |
|---|---|---|---|---|
applicationID | string | 是 | 是 | 应用ID,在创建应用后由华为开发者联盟为应用分配的唯一标识。 |
productNo | string | 是 | 是 | 所购买商品的PMS编码,用于从PMS系统获取商品信息和价格,此处填写查询到的产品编码,获取产品信息参见“getProductDetails”,如果在PMS查询不到对应商品,支付失败,PayResult:returnCode将返回PRODUCT_NOT_EXIST错误(该错误码在PayStatusCodes中定义)。 |
requestId | string | 是 | 是 | 商户侧的支付订单号,用于唯一标识一次支付请求。 支付订单号由开发者自行生成,需由字母和数字组成,不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | .并且不支持中文。 支付订单号每次支付请求需唯一,即使订单被取消或支付失败订单号也不可重复。 华为支付服务器在接口回调结果中会原样返回requestId的值。 |
merchantId | string | 是 | 是 | 商户id,华为开发者联盟给开发者分配的“支付ID”。 |
serviceCatalog | string | 是 | 否 | 商品类型。 游戏请设置为“X6”,应用请设置为“X5”。 如果传入类型错误,会影响风控,请开发者按照真实业务类型传入。 |
merchantName | string | 是 | 否 | 商户名称,配置为注册开发者时配置的公司名。 |
sdkChannel | int | 是 | 是 | 渠道信息,快游戏请设置为3。 取值如下:
|
url | string | 否 | 是 | 支付结果回调地址 。 华为服务器收到后检查该应用有无在开发者联盟配置回调URL,如果配置了则使用应用配置的URL,否则使用此url作为该次支付的回调URL。 注意: 必须是合法的url,长度最大255,不能以‘\’结尾,不能包含get参数。支持多级域名,但域名中不能使用 _ 等特殊字符。 例如: 正确:https://test.sdkapp.chuangyunet.com/Pay/path 错误:https://test.sdk_app.chuangyunet.com/Pay/path?key=value |
urlver | string(100) | 否 | 是 | 支付结果回调版本。 请CP关注,该值可以不传,如果传值则固定值传2,如果不传2会导致支付不成功。 |
publicKey | string(50) | 是 | 否 | 公钥,在华为开发者联盟上开通应用内支付服务获取的“支付公钥”,获取方式参见“开通应用内支付服务”中的“使用支付2.0接口”章节。 |
extReserved | string(128) | 否 | 否 | 商户侧保留信息。该字段中不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | % + 若该字段有值,在华为支付服务器回调接口中原样返回。 |
sign | string | 是 | 否 |
生成的签名可使用华为快应用IDE进行校验,详细内容参见“华为快应用IDE验证支付签名工具使用指导”。 |
success | function | 否 | 否 | 成功回调。 |
fail | function | 否 | 否 | 失败回调。 |
complete | function | 否 | 否 | 执行结束后的回调。 |
success返回值:
参数 | 类型 | 说明 |
|---|---|---|
returnCode | int | 返回码 |
errMsg | string | 信息描述。 |
merchantId | string | 商户ID,即华为开发者联盟为开发者分配的“支付ID”。 |
orderID | string | 华为支付平台生成的支付订单号。 |
microsAmount | long | 商品微单位价格。 值为商品实际价格乘以1,000,000。例如某个商品实际价格是1.99美元,则该商品对应的微单位价格为:1.99*1000000=1990000。 |
currency | string | 币种。必须符合ISO 4217标准,例如USD、CNY、MYR。 |
country | string | 国家码。必须符合ISO 3166标准,如US、CN、MY。 |
time | string | 支付完成的时间戳。 |
requestId | string | 商户侧的支付订单号,与请求参数中的requestId一致。 |
productNo | string | 所购买商品的商品ID。 |
sign | string | 以上数据的签名。 |
fail返回值:
参数 | 类型 | 说明 |
|---|---|---|
code | number | 返回状态码。 |
data | string | 状态码说明。 |
示例代码
productPay:function(){
pay.productPay({
"merchantId": "890086000000001051",
"applicationID": "101234327",
"requestId": this.requestid,
"productNo": "yull",
"serviceCatalog":"1",
"sdkChannel":1,
"urlver": "2", "publicKey":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtTOTA354idE76xHbVdEMUwDaOc6UFc6l2Mz+RAbNBtdpkLWc2VJGSDLEAKjRpk5D4v2ZIZrTB1PMfiWQYIWcHMiUrKn2Eak55IyaQzg1jbBfxKE5Q4czdRUqt/2Djvyk7+nZCicQf++G1thPwLamFcgFP2dXY3R4koSRb0dyfjomnp5rJ+gZsOnLQxItoNrKpbvvVLSl73QIlzaqEv3HO5s6WPj2Zv+cP9JN2fQY6psKey7Tpys1i2N9x0BnXCviTahOvMtzV1b/5hVYKiw34l/ZugQhTpGvjFemjZQ2jkY8MgJYlqc4e17aCr2JyT2c600FB0mPXKmOf8fSLAKl9wIDAQAB",
"sign": this.sign,//签名
success: function (ret) {
prompt.showToast({
message: "productPay" + JSON.stringify(ret)
})
},
fail: function (erromsg, errocode) {
prompt.showToast({ message: 'productPay fail --- ' + errocode + ':' + erromsg });
}
})
}, 描述
用于从华为PMS系统获取商品详情。请开发者避免从自有服务端获取商品信息,否则可能导致应用内商品价格和华为支付收银台价格不一致。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
applicationID | string | 是 | 应用ID。在华为开发者联盟上获取的AppID。 |
requestId | string | 是 | 查询标识号,由开发者应用自行生成,用于唯一标识一次商品查询请求。 |
merchantId | string | 是 | 商户ID,即华为开发者联盟给开发者分配的“支付ID”。 |
productNos | string | 是 | 需要获取商品详情的商品ID列表,多个商品ID时以竖线“|”分割,一次查询最多支持20个商品。 商品ID来源于开发者在AppGallery Connect中配置商品信息时设置的“商品ID”,请参见“创建应用内商品”。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值:
参数 | 类型 | 说明 |
|---|---|---|
requestId | string | 商品查询请求的标识号,与请求参数中的requestId一致。 应用通过该参数识别本次回调结果所属的查询请求。 |
productList | list<productdetail> | 成功查询到商品信息的商品列表,值为包含ProductDetail对象的数组。 |
failList | productfailobject | 查询失败的商品信息列表,值为包含ProductFailObject对象的数组。 |
ProductDetail说明:
参数 | 类型 | 说明 |
|---|---|---|
productNo | string | 查询成功的商品ID。 |
microsPrice | long | 商品实际价格乘以1,000,000后的微单位价格。 例如某个商品实际价格是1.99美元,则该商品对应的微单位价格为:1.99*1000000=1990000。 |
price | string | 商品的展示价格,包含商品货币单位和实际价格,格式为“货币单位 商品价格”,中间使用空格分隔,例如“CNY 0.15”。 |
currency | string | 用于支付该商品的币种,必须符合ISO 4217标准,例如USD、CNY、MYR。 |
country | string | 国家码,用于区分国家信息,必须符合ISO 3166标准,如US、CN、MY。 |
productName | string | 商品名称,为配置商品信息时配置的名称。 |
productDesc | string | 商品描述,为配置商品信息时配置的描述信息。 |
ProductFailObject返回值:
参数 | 类型 | 说明 |
|---|---|---|
productNo | string | 查询失败的商品ID。 |
code | int | 查询失败的错误码,具体错误码请参见“错误码”。 |
msg | string | 查询失败的错误描述。 |
fail返回值:
参数 | 类型 | 说明 |
|---|---|---|
code | number | 返回状态码。 |
data | string | 状态码说明。 |
示例代码
getProductDetails:function(){
pay.getProductDetails({
"merchantId": "890086000000001051",
"applicationID": "101234327",
"requestId": "123",
"productNos": "grtyrtyr|yuFan",
success: function (ret) {
prompt.showToast({
message: "getProductDetails" + JSON.stringify(ret)
})
},
fail: function (erromsg, errocode) {
prompt.showToast({ message: 'getProductDetails fail --- ' + errocode + ':' + erromsg });
}
})
}, 描述
查询当前用户已订购的非消耗商品订单信息。
OBJECT参数
参数 | 类型 | 是否必填 | 是否参与签名 | 说明 |
|---|---|---|---|---|
merchantId | string | 是 | 是 | 商户ID,即华为开发者联盟给开发者分配的“支付ID”。 |
appId | string | 是 | 是 | 应用ID,在创建应用后由华为开发者联盟为应用分配的唯一标识。 |
priceType | string | 是 | 是 | 价格类型。固定值3:应用内非消耗品。 |
productId | string | 否 | 是 | 所购买商品的PMS编码,如果不传该参数,则查询所有的非消耗商品信息。 |
ts | long | 是 | 是 | 时间戳,距离1970年的毫秒数。 |
publicKey | string | 是 | 否 | 公钥,在华为开发者联盟上开通应用内支付服务获取的“支付公钥”,获取方式参见“开通应用内支付服务”中的“使用支付2.0接口”章节。 |
pageNo | long | 是 | 是 | 请求查询记录数的页码,每页默认查100条记录。 |
sign | string | 是 | 否 |
|
success | function | 否 | 否 | 成功回调。 |
fail | function | 否 | 否 | 失败回调。 |
complete | function | 否 | 否 | 执行结束后的回调。 |
success返回值:
参数 | 类型 | 说明 |
|---|---|---|
rtnCode | string | 结果码。 |
pageCount | long | 页数。 |
purchaseInfoList | list<purchaseinfo> | 查询到的非消耗商品订单列表。 |
sign | string | 签名字符串。 |
ProductFailObject返回值:
参数 | 类型 | 说明 |
|---|---|---|
requestId | string | 商户侧订单id。 |
merchantId | string | 订单的商户ID。 |
appId | string | 应用id。 |
productId | string | 非消耗商品id。 |
tradeTime | string | 支付完成时间,格式为:yyyy-MM-dd HH:mm:ss。 |
fail返回值:
参数 | 类型 | 说明 |
|---|---|---|
code | number | 返回状态码。 |
data | string | 状态码说明。 |
示例代码
pagetPurchaseInfo:function(){
var that = this;
pay.getPurchaseInfo({
"merchantId": "890086000000001051",
"appId": "101234327",
"requestId": this.requestid,
"priceType": "3",
"productId":"yuFan",
"pageNo":1,
"ts": that.ts,
"publicKey":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtTOTA354idE76xHbVdEMUwDaOc6UFc6l2Mz+RAbNBtdpkLWc2VJGSDLEAKjRpk5D4v2ZIZrTB1PMfiWQYIWcHMiUrKn2Eak55IyaQzg1jbBfxKE5Q4czdRUqt/2Djvyk7+nZCicQf++G1thPwLamFcgFP2dXY3R4koSRb0dyfjomnp5rJ+gZsOnLQxItoNrKpbvvVLSl73QIlzaqEv3HO5s6WPj2Zv+cP9JN2fQY6psKey7Tpys1i2N9x0BnXCviTahOvMtzV1b/5hVYKiw34l/ZugQhTpGvjFemjZQ2jkY8MgJYlqc4e17aCr2JyT2c600FB0mPXKmOf8fSLAKl9wIDAQAB",
"sign": this.sign,//签名
success: function (ret) {
prompt.showToast({
message: "getPurchaseInfo" + JSON.stringify(ret)
})
},
fail: function (erromsg, errocode) {
prompt.showToast({ message: 'getPurchaseInfo fail --- ' + errocode + ':' + erromsg });
}
})
}, 描述
查询订单详情,所有调用pay接口的订单均可查询,用于在丢单的情况下复核订单。
OBJECT参数
参数 | 类型 | 是否必填 | 是否参与签名 | 说明 |
|---|---|---|---|---|
merchantId | string | 是 | 是 | 商户ID,即华为开发者联盟给开发者分配的“支付ID”。 |
requestId | string | 是 | 是 | 需要查询订单详情的支付订单号。支付订单号由开发者应用在支付时自行生成,用来唯一标识一次支付请求,订单号生成后开发者应用需自行维护订单号。 注意: 该字段中不能包含特殊字符,包括# " & / ? $ ^ *:) \ < > , | . 并且不支持中文。 |
keyType | string | 是 | 是 | 固定值,请填写:1 商户秘钥 |
time | string | 是 | 是 | 当前时间的时间戳,即当前时间距离1970年的毫秒数。 |
publicKey | string | 是 | 否 | 公钥,在华为开发者联盟上开通应用内支付服务获取的“支付公钥”,获取方式参见“开通应用内支付服务”中的“使用支付2.0接口”章节。 |
sign | string | 是 | 否 |
|
success | function | 否 | 否 | 成功回调。 |
fail | function | 否 | 否 | 失败回调。 |
complete | function | 否 | 否 | 执行结束后的回调。 |
success返回值:
参数 | 类型 | 是否必填 | 是否参与签名 | 说明 |
|---|---|---|---|---|
returnCode | int | 是 | 是 | 结果码,请参见“错误码”。 |
returnDesc | string | 是 | 是 | 错误描述信息。 |
requestId | string | 否 | 是 | 应用侧生成的支付订单号,与请求参数中的requestId一致。 |
orderID | string | 否 | 是 | 华为支付平台生成的订单号。 |
orderTime | string | 否 | 是 | 下单时间,格式为:yyyy-MM-dd HH:mm:ss。 |
tradeTime | string | 否 | 是 | 支付时间,yyyy-MM-dd HH:mm:ss。 |
status | string | 否 | 是 | 订单的支付状态。
|
sign | string | 否 | 否 | 查询响应的签名字符串。 |
fail返回值:
参数 | 类型 | 说明 |
|---|---|---|
code | number | 返回状态码。 |
data | string | 状态码说明。 |
示例代码
getOrderDetail:function(){
var that = this;
pay.getOrderDetail({
"merchantId": "890086000000002287",
"keyType": "1",
"time":that.ts,
"requestId":"20191021073603003",
"publicKey":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkMcvapcWWD7HGNV/KVF7cGE4EhhZ0J0UaHDGWPYC0w+dZdMRJOXWzeGkgsC8CMsP8H8Dqnhdhy9bH37g70OCb1pKUhfgv6UlSXE5oU6+H2TJhXRt1ZrceAKEe8+mt8eINaF1HD9EHPESz6U4+aCWUtJ0WFeevG+4FbPQ4o2Mb+LmaS+LW5NlKaTpqwnhqFsCvJ6JWSSVGBuFo2+8t0IMC5pscropffd/ySEO9s4u5HjDb76ZUHpILN5h+LcR+CfFpXNoQAPoRTSo/CvdROPpVwvS5RP3tGVYkOa05fwuxxsSF3RvuK5TUcdtnn9oKJ/ENo9hwGht9UbIJy7D3wVbuQIDAQAB",
"sign": this.sign,//签名
success: function (ret) {
prompt.showToast({
message: "getOrderDetail" + JSON.stringify(ret)
})
},
fail: function (erromsg, errocode) {
prompt.showToast({ message: 'getOrderDetail fail --- ' + errocode + ':' + erromsg });
}
})
} 描述
查询是否支持Huawei Pay线上支付。
OBJECT参数
参数 | 类型 | 默认值 | 是否必填 | 描述 |
|---|---|---|---|---|
event | string | "ONLINEPAY" | 否 | 如果不填,将按设置“ONLINEPAY”处理。 |
success | function | - | 是 | 获取状态成功(即支持Huawei Pay线上支付)的回调函数。 |
fail | function | - | 是 | 获取状态失败的回调函数。 |
fail返回值
参数 | 类型 | 说明 |
|---|---|---|
data | string | 错误描述。 |
code | int | 错误码。 |
示例代码
pay.getWalletStatus({
event: "ONLINEPAY",
success: function (ret) {
prompt.showToast({
message: "getWalletStatus success."
})
},
fail: function (ret, code) {
prompt.showToast({
message: "getWalletStatus failed:" + JSON.stringify(ret) + "; code=" + code
})
}
}) 描述
拉起Huawei Pay线上支付。
OBJECT参数
参数 | 类型 | 默认值 | 是否必填 | 描述 |
|---|---|---|---|---|
orderInfo | string | - | 是 | 银联订单号(由商户服务端从银联服务器获取)。 |
success | function | - | 是 | 支付成功的回调函数。 |
fail | function | - | 是 | 支付失败的回调函数。 |
success返回值
参数 | 类型 | 说明 |
|---|---|---|
data | string | 支付成功结果描述。 |
fail返回值
参数 | 类型 | 说明 |
|---|---|---|
data | string | 错误描述。 |
code | int | 错误码。 |
示例代码
pay.startWalletPay({
orderInfo: "534078477796354972220",
success: function (ret) {
prompt.showToast({
message: "startWalletPay success:" + JSON.stringify(ret)
})
},
fail: function (ret, code) {
prompt.showToast({
message: "startWalletPay failed:" + JSON.stringify(ret) + "; code=" + code
})
}
})