Payment模块管理支付功能,用于提供网页安全支付能力,支持通过Web接口进行支付操作。通过plus.payment可获取支付管理对象

支付接口可使得网页开发人员能获取浏览器支持的支付渠道进行支付操作,而不需要安装额外的浏览器支付插件。 规范不定义支付渠道安全认证及支付操作通讯协议,由运行环境的支付模块根据支付服务器接入规范实现。

方法:

对象:

回调方法:

权限:

permissions

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffa0a0">"permissions"</span><span style="color:#ffffff">:{</span>
	<span style="color:#87ceeb">// ...</span>
	<span style="color:#ffa0a0">"Payment"</span><span style="color:#ffffff">:</span> <span style="color:#ffffff">{</span>
		<span style="color:#ffa0a0">"description"</span><span style="color:#ffffff">:</span> <span style="color:#ffa0a0">"支付"</span>
	<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
			</code></span></span>

getChannels

获取支付通道

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span><span style="color:#ffffff">successCB</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> errorCB</span><span style="color:#ffffff">);</span>
				</code></span></span>

说明:

在进行支付操作前需获取终端支持的支付通道列表,用于提示用户进行选择。 获取支付通道成功后通过successCB回调返回支持的所有通道列表,获取支付通道列表失败则通过errorCB回调返回。

参数:

  • successCB: ChannelsSuccessCallback ) 必选 获取支付通道成功回调函数

    获取支付通道列表成功时的回调函数,用于返回终端支持的支付通道列表。

  • errorCB: PaymentErrorCallback ) 可选 获取支付通道失败回调函数

    获取支付通道列表失败时的回调函数,用于返回错误信息。

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

示例:

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
	<span style="color:#f0e68c"><strong><head></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">Payment Example</span><span style="color:#f0e68c"><strong></title></strong></span>
	<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> channels</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 监听plusready事件  </span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
	<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">s</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		channels </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> s</span><span style="color:#ffffff">;</span>
	<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"获取支付通道列表失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message </span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
	<span style="color:#f0e68c"><strong></script></strong></span>
	<span style="color:#f0e68c"><strong></head></strong></span>
	<span style="color:#f0e68c"><strong><body></strong></span>
	<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
				</code></span></span>

uni-app使用plus注意事项

request

请求支付操作

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">request</span><span style="color:#ffffff">(</span><span style="color:#ffffff">channel</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> statement</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> successCB</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> errorCB</span><span style="color:#ffffff">);</span>
				</code></span></span>

说明:

调用指定的支付通道进行支付操作,其中statement包含支付操作的相关信息,支付模块将弹出支付界面供用户进行支付信息的输入确认操作。 用户支付操作成功后通过successCB回调返回支付操作结果,支付操作失败则通过errorCB回调返回。

参数:

  • channel: PaymentChannel ) 必选 支付通道

    指定支付操作的通道,通过getChannels接口获取。

  • statement: ( String | JSON | OrderStatementIAP ) 必选 支付订单信息

    支付订单信息,由支付通道定义的数据格式,通常是由业务服务器生成或向支付服务器获取,是经过加密的字符串信息。

  • successCB: PaymentSuccessCallback | IapPaymentSuccessCallback ) 可选 请求支付成功回调函数

    请求支付成功时触发,用于返回支付结果。

  • errorCB: PaymentErrorCallback ) 可选 请求支付失败回调函数

    请求支付失败时触发,用于返回错误信息。

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

示例:

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
	<span style="color:#f0e68c"><strong><head></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">Payment Example</span><span style="color:#f0e68c"><strong></title></strong></span>
	<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> channels</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 监听plusready事件  </span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
	<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">s</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		channels </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> s</span><span style="color:#ffffff">;</span>
	<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"获取支付通道列表失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 请求支付操作</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> requestPay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">c</span><span style="color:#ffffff">){</span>
	<span style="color:#87ceeb">// 必须从业务服务器获取支付信息</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> statement </span><span style="color:#ffffff">=</span> <span style="color:#ffa0a0">"..."</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">request</span><span style="color:#ffffff">(</span><span style="color:#ffffff">c</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> statement</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"支付操作成功!"</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"支付失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">}</span> <span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span>
	<span style="color:#f0e68c"><strong></script></strong></span>
	<span style="color:#f0e68c"><strong></head></strong></span>
	<span style="color:#f0e68c"><strong><body></strong></span>
		<span style="color:#f0e68c"><strong><button</strong></span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">requestPay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">channels</span><span style="color:#ffffff">)</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">请求支付</span><span style="color:#f0e68c"><strong></button></strong></span>
	<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
				</code></span></span>

uni-app使用plus注意事项

PaymentChannel

支付通道对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">PaymentChannel</span><span style="color:#ffffff">{</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> id</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> description</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">Boolean</span><span style="color:#ffffff"> serviceReady</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> installService</span><span style="color:#ffffff">();</span>
	
	<span style="color:#87ceeb">// iOS iAP</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> requestOrder</span><span style="color:#ffffff">(</span><span style="color:#ffffff">ids</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> successCB</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> errorCB</span><span style="color:#ffffff">);</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> restoreComplateRequest</span><span style="color:#ffffff">(</span><span style="color:#ffffff">options</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> successCB</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

PaymentChannel对象表示特定的支付通道,用于向系统请求支付操作。

属性:

方法:

id

支付通道标识

说明:

String 类型 只读属性

用于标识支付通道: "alipay" - 表示支付宝; "wxpay" - 表示微信支付; "appleiap" - 表示苹果应用内支付; "qhpay" - 表示360聚合支付(仅360手助流应用环境下支持)。

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

description

支付通道描述

说明:

String 类型 只读属性

支付通道的描述信息,如“支付宝”、“微信”、“In-App Purchase”。

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

serviceReady

支付通道服务是否安装

说明:

Boolean 类型 只读属性

通常特定的支付通道依赖系统安装相关的服务,此属性用于标识其服务是否安装,如果没有安装则为false,否则为true。 若系统环境中没有安装相关的服务,则可能导致调用支付操作失败,这时可以调用installService方法进行安装。 注意:如果支付通道不需要依赖系统安装服务,则永远返回true。例如支付宝,如果设备上未安装支付宝客户端则调用Wap页面进行支付,因此值固定返回true; 而微信支付则依赖微信客户端,如果设备上未安装微信客户端则serviceReady值为false,此时应该提示用户安装微信客户端才能进行支付操作。

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

installService

安装支付通道依赖的服务

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> pay</span><span style="color:#ffffff">.</span><span style="color:#ffffff">installService</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

对于某些支付通道,通常特定的支付通道依赖系统安装相关的服务,调用此方法将安装其依赖的支付服务。 如支付宝,则在系统中安装支付宝客户端程序。

参数:

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持) :

    支付宝:支付操作可不依赖系统环境服务,此方法不做任何操作。 当调用plus.payment.request请求支付操作时如果系统环境中已经安装“支付宝钱包”则会调用支付宝钱包进行支付,否则调用Webview窗口进行支付。

  • iOS - 5.0+ (支持) :

    支付宝:支付操作可不依赖系统环境服务,此方法不做任何操作。 当调用plus.payment.request请求支付操作时如果系统环境中已经安装“支付宝钱包”则会调用支付宝钱包进行支付,否则调用Webview窗口进行支付。

示例:

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
	<span style="color:#f0e68c"><strong><head></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">Payment Example</span><span style="color:#f0e68c"><strong></title></strong></span>
	<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> channels</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 监听plusready事件  </span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
	<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">s</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		channels </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> s</span><span style="color:#ffffff">;</span>
	<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"获取支付通道列表失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 请求支付操作</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> requestPay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">c</span><span style="color:#ffffff">){</span>
	<span style="color:#87ceeb">// 必须从业务服务器获取支付信息</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> statement </span><span style="color:#ffffff">=</span> <span style="color:#ffa0a0">"..."</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(!</span><span style="color:#ffffff">c</span><span style="color:#ffffff">.</span><span style="color:#ffffff">serviceReady</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		c</span><span style="color:#ffffff">.</span><span style="color:#ffffff">installService</span><span style="color:#ffffff">();</span>
	<span style="color:#ffffff">}</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">request</span><span style="color:#ffffff">(</span><span style="color:#ffffff">c</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> statement</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"支付操作成功!"</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"支付失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">}</span> <span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span>
	<span style="color:#f0e68c"><strong></script></strong></span>
	<span style="color:#f0e68c"><strong></head></strong></span>
	<span style="color:#f0e68c"><strong><body></strong></span>
	<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
						</code></span></span>

uni-app使用plus注意事项

requestOrder

向IAP服务器请求支付订单

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> pay</span><span style="color:#ffffff">.</span><span style="color:#ffffff">requestOrder</span><span style="color:#ffffff">(</span><span style="color:#ffffff">ids</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> successCB</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> errorCB</span><span style="color:#ffffff">);</span>
						</code></span></span>

说明:

IAP支付在调用plus.payment.request方法支付前须先向服务器请求获取商品的详细信息,否则会支付失败。

参数:

返回值:

void : 无

平台支持:

  • Android - 2.2+ (不支持)
  • iOS - 5.0+ (支持) :

    仅苹果应用内支付(IAP)支持:需在itunesconnect上添加商品并配置好才能请求成功。

示例:

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
	<span style="color:#f0e68c"><strong><head></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"HandheldFriendly"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"true"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"MobileOptimized"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"320"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">In-App Purchase</span><span style="color:#f0e68c"><strong></title></strong></span>
		<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span> <span style="color:#bdb76b"><strong>src</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"../js/common.js"</span><span style="color:#f0e68c"><strong>></script></strong></span>
		<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> iap</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> ids</span><span style="color:#ffffff">=[</span><span style="color:#ffa0a0">'donation'</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">'donation6'</span><span style="color:#ffffff">];</span><span style="color:#87ceeb">//应用内购项目</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> plusReady</span><span style="color:#ffffff">(){</span>
	<span style="color:#87ceeb">// 获取支付通道</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">channels</span><span style="color:#ffffff">){</span>
		<span style="color:#f0e68c"><strong>for</strong></span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> i in channels</span><span style="color:#ffffff">){</span>
			<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> channel</span><span style="color:#ffffff">=</span><span style="color:#ffffff">channels</span><span style="color:#ffffff">[</span><span style="color:#ffffff">i</span><span style="color:#ffffff">];</span>
			<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">channel</span><span style="color:#ffffff">.</span><span style="color:#ffffff">id</span><span style="color:#ffffff">===</span><span style="color:#ffa0a0">'appleiap'</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
				iap</span><span style="color:#ffffff">=</span><span style="color:#ffffff">channel</span><span style="color:#ffffff">;</span>
			<span style="color:#ffffff">}</span>
		<span style="color:#ffffff">}</span><span style="color:#ffffff">
		requestOrder</span><span style="color:#ffffff">();</span>
	<span style="color:#ffffff">},</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"获取支付通道失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'plusready'</span><span style="color:#ffffff">,</span><span style="color:#ffffff">plusReady</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>false</strong></span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 获取订单</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> requestOrder</span><span style="color:#ffffff">(){</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">showWaiting</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'检测支付环境...'</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
	iap</span><span style="color:#ffffff">.</span><span style="color:#ffffff">requestOrder</span><span style="color:#ffffff">(</span><span style="color:#ffffff">ids</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">closeWaiting</span><span style="color:#ffffff">();</span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'requestOrder success: '</span><span style="color:#ffffff">+</span><span style="color:#ffffff">JSON</span><span style="color:#ffffff">.</span><span style="color:#ffffff">stringify</span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">));</span>
	<span style="color:#ffffff">},</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'requestOrder failed: '</span><span style="color:#ffffff">+</span><span style="color:#ffffff">JSON</span><span style="color:#ffffff">.</span><span style="color:#ffffff">stringify</span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">));</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">closeWaiting</span><span style="color:#ffffff">();</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">confirm</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"错误信息:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">JSON</span><span style="color:#ffffff">.</span><span style="color:#ffffff">stringify</span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">),</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span>
			<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">index</span><span style="color:#ffffff">==</span><span style="color:#cd5c5c">0</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
				requestOrder</span><span style="color:#ffffff">();</span>
			<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
				back</span><span style="color:#ffffff">();</span>
			<span style="color:#ffffff">}</span>
		<span style="color:#ffffff">},</span> <span style="color:#ffa0a0">'重新请求支付'</span><span style="color:#ffffff">,[</span><span style="color:#ffa0a0">'确定'</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">'取消'</span><span style="color:#ffffff">]);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 支付</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">id</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">showWaiting</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">''</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">style</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"black"</span><span style="color:#ffffff">,</span><span style="color:#ffffff">background</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"rgba(0,0,0,0)"</span><span style="color:#ffffff">});</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">request</span><span style="color:#ffffff">(</span><span style="color:#ffffff">iap</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">productid</span><span style="color:#ffffff">:</span><span style="color:#ffffff">id</span><span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">result</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">closeWaiting</span><span style="color:#ffffff">();</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"支付成功:感谢你的支持,我们会继续努力完善产品。"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span><span style="color:#ffffff">
			back</span><span style="color:#ffffff">();</span>
		<span style="color:#ffffff">},</span> <span style="color:#ffa0a0">"捐赠"</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">},</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">closeWaiting</span><span style="color:#ffffff">();</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"错误信息:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"支付失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">code</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span>
		<span style="color:#f0e68c"><strong></script></strong></span>
		<span style="color:#f0e68c"><strong><link</strong></span> <span style="color:#bdb76b"><strong>rel</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"stylesheet"</span> <span style="color:#bdb76b"><strong>href</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"../css/common.css"</span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/css"</span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
	<span style="color:#f0e68c"><strong></head></strong></span>
	<span style="color:#f0e68c"><strong><body></strong></span>
		<span style="color:#f0e68c"><strong><header</strong></span> <span style="color:#bdb76b"><strong>id</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"header"</span><span style="color:#f0e68c"><strong>></strong></span>
			<span style="color:#f0e68c"><strong><div</strong></span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"nvbt iback"</span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">back</span><span style="color:#ffffff">()</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></div></strong></span>
			<span style="color:#f0e68c"><strong><div</strong></span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"nvtt"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">In-App Purchase</span><span style="color:#f0e68c"><strong></div></strong></span>
		<span style="color:#f0e68c"><strong></header></strong></span>
		<span style="color:#f0e68c"><strong><div</strong></span> <span style="color:#bdb76b"><strong>id</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"content"</span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"content"</span><span style="color:#f0e68c"><strong>></strong></span>
			<span style="color:#f0e68c"><strong><br/><br/></strong></span>
			<span style="color:#f0e68c"><strong><p</strong></span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"des"</span> <span style="color:#bdb76b"><strong>style</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">font</span><span style="color:#ffffff">-</span><span style="color:#ffffff">size</span><span style="color:#ffffff">:</span><span style="color:#cd5c5c">16px</span><span style="color:#ffffff">;</span><span style="color:#ffffff">line</span><span style="color:#ffffff">-</span><span style="color:#ffffff">height</span><span style="color:#ffffff">:</span><span style="color:#cd5c5c">30px</span><span style="color:#ffffff">;</span><span style="color:#ffffff">margin</span><span style="color:#ffffff">:</span> <span style="color:#cd5c5c">0px</span> <span style="color:#ffffff">.</span><span style="color:#cd5c5c">5em</span><span style="color:#ffffff">;</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">
DCloud 是W3C会员、中国HTML5产业联盟发起单位,致力于推进HTML5发展,构建HTML5生态。
			</span><span style="color:#f0e68c"><strong></p></strong></span>
			<span style="color:#f0e68c"><strong><br/></strong></span>
			<span style="color:#f0e68c"><strong><strong></strong></span><span style="color:#ffffff">
支持HTML5开发工具HBuilder
			</span><span style="color:#f0e68c"><strong></strong></strong></span>
			<span style="color:#f0e68c"><strong><div</strong></span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"button"</span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">pay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">ids</span><span style="color:#ffffff">[</span><span style="color:#cd5c5c">0</span><span style="color:#ffffff">])</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">
				捐赠1元
			</span><span style="color:#f0e68c"><strong></div></strong></span>
			<span style="color:#f0e68c"><strong><div</strong></span> <span style="color:#bdb76b"><strong>class</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"button"</span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">pay</span><span style="color:#ffffff">(</span><span style="color:#ffffff">ids</span><span style="color:#ffffff">[</span><span style="color:#cd5c5c">1</span><span style="color:#ffffff">])</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">
				捐赠6元
			</span><span style="color:#f0e68c"><strong></div></strong></span>
		<span style="color:#f0e68c"><strong></div></strong></span>
	<span style="color:#f0e68c"><strong></body></strong></span>
	<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span> <span style="color:#bdb76b"><strong>src</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"../js/immersed.js"</span> <span style="color:#f0e68c"><strong>></script></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
						</code></span></span>

uni-app使用plus注意事项

restoreComplateRequest

向IAP服务器请求已经购买的非消耗性商品和订阅商品

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> pay</span><span style="color:#ffffff">.</span><span style="color:#ffffff">restoreComplateRequest</span><span style="color:#ffffff">(</span><span style="color:#ffffff">options</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> successCB</span><span style="color:#ffffff">);</span>
						</code></span></span>

说明:

注意:不能获取已购买的消耗性商品。

参数:

  • options: ( Object ) 必选 请求参数

    支持属性:"username"用户名称,可选项,请求支付时设置的username值。

  • successCB: IapRestoreComplateRequestCallback ) 必选 请求成功回调

返回值:

void : 无

平台支持:

  • Android - 2.2+ (不支持)
  • iOS - 5.0+ (支持) :

    仅苹果应用内支付(IAP)支持。

示例:

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
	<span style="color:#f0e68c"><strong><head></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"HandheldFriendly"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"true"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"MobileOptimized"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"320"</span><span style="color:#f0e68c"><strong>/></strong></span>
		<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">In-App Purchase</span><span style="color:#f0e68c"><strong></title></strong></span>
		<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> iap</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> plusReady</span><span style="color:#ffffff">(){</span>
	<span style="color:#87ceeb">// 获取支付通道</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getChannels</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">channels</span><span style="color:#ffffff">){</span>
		<span style="color:#f0e68c"><strong>for</strong></span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> i in channels</span><span style="color:#ffffff">){</span>
			<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> channel</span><span style="color:#ffffff">=</span><span style="color:#ffffff">channels</span><span style="color:#ffffff">[</span><span style="color:#ffffff">i</span><span style="color:#ffffff">];</span>
			<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">channel</span><span style="color:#ffffff">.</span><span style="color:#ffffff">id</span><span style="color:#ffffff">===</span><span style="color:#ffa0a0">'appleiap'</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
				iap</span><span style="color:#ffffff">=</span><span style="color:#ffffff">channel</span><span style="color:#ffffff">;</span>
			<span style="color:#ffffff">}</span>
		<span style="color:#ffffff">}</span>
	<span style="color:#ffffff">},</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">e</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"获取支付通道失败:"</span><span style="color:#ffffff">+</span><span style="color:#ffffff">e</span><span style="color:#ffffff">.</span><span style="color:#ffffff">message</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'plusready'</span><span style="color:#ffffff">,</span><span style="color:#ffffff">plusReady</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>false</strong></span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 获取已购买商品(非消耗性商品和订阅商品)</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> restoreComplateRequest</span><span style="color:#ffffff">(){</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">showWaiting</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">''</span><span style="color:#ffffff">,{</span><span style="color:#ffffff">style</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"black"</span><span style="color:#ffffff">,</span><span style="color:#ffffff">background</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"rgba(0,0,0,0)"</span><span style="color:#ffffff">});</span><span style="color:#ffffff">
	iap</span><span style="color:#ffffff">.</span><span style="color:#ffffff">restoreComplateRequest</span><span style="color:#ffffff">({},</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">results</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">nativeUI</span><span style="color:#ffffff">.</span><span style="color:#ffffff">closeWaiting</span><span style="color:#ffffff">();</span>
		<span style="color:#f0e68c"><strong>for</strong></span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> i in results</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
			alert</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'restoreComplateRequest['</span><span style="color:#ffffff">+</span><span style="color:#ffffff">i</span><span style="color:#ffffff">+</span><span style="color:#ffa0a0">']: '</span><span style="color:#ffffff">+</span><span style="color:#ffffff">JSON</span><span style="color:#ffffff">.</span><span style="color:#ffffff">stringify</span><span style="color:#ffffff">(</span><span style="color:#ffffff">results</span><span style="color:#ffffff">[</span><span style="color:#ffffff">i</span><span style="color:#ffffff">]));</span>
		<span style="color:#ffffff">}</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span>
		<span style="color:#f0e68c"><strong></script></strong></span>
	<span style="color:#f0e68c"><strong></head></strong></span>
	<span style="color:#f0e68c"><strong><body></strong></span>
		<span style="color:#f0e68c"><strong><button</strong></span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">restoreComplateRequest</span><span style="color:#ffffff">()</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">获取已购买商品</span><span style="color:#f0e68c"><strong></button></strong></span>
	<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
						</code></span></span>

uni-app使用plus注意事项

OrderStatementIAP

IAP订单数据对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">OrderStatementIAP</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> productid</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> username</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> quantity</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

描述IAP商品订单信息,如标识、数量等。

属性:

  • productid: (String 类型 )商品的标识
  • username: (String 类型 )购买用户名称
  • quantity: (String 类型 )商品数量

PaymentResult

支付操作结果对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">PaymentResult</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">PaymentChannel</span><span style="color:#ffffff"> channel</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> tradeno</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> description</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> url</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> signature</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> rawdata</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

PaymentResult对象表示支付操作返回结果,用于确认支付操作成功。

属性:

  • channel: (PaymentChannel 类型 )支付通道对象

    用于发起支付操作的支付通道对象。

    平台支持

    • Android - 2.2+ (支持)
    • iOS - 5.0+ (支持)
  • tradeno: (String 类型 )交易编号信息

    如果支付平台不支持此数据则返回undefined。

  • description: (Boolean 类型 )交易描述信息

    如果支付平台不支持此数据则返回undefined。

  • url: (Boolean 类型 )查找支付交易信息地址

    用于向支付平台查询交易信息,如果支付平台不支持此数据则返回undefined。

  • signature: (String 类型 )支付操作指纹信息

    用于向支付平台查询支付订单信息,如果支付平台不支持此数据则返回undefined。

  • rawdata: (String 类型 )支付平台返回的原始数据

    如果支付平台返回key-value类型字符串,则组合成符合JSON格式的字符串。

IAPProduct

IAP商品对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">IAPProduct</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> productid</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> price</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> title</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> description</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

描述IAP商品详细信息,如标识、价格、标题、描述信息等。

属性:

  • productid: (String 类型 )商品的标识
  • price: (String 类型 )商品的价格
  • title: (String 类型 )商品标题
  • description: (String 类型 )商品的描述信息

IAPProductInfo

购买IAP商品对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">IAPProductInfo</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> productIdentifier</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
	attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> quantity</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

描述购买的IAP商品详细信息,如标识、数量等。

属性:

  • productIdentifier: (String 类型 )商品的标识
  • quantity: (String 类型 )商品的数量

IAPTransaction

购买IAP商品交易信息对象

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">payment</span><span style="color:#ffffff">.</span><span style="color:#98fb98">IAPTransaction</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
    attribute </span><span style="color:#98fb98">IAPProductInfo</span><span style="color:#ffffff"> payment</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
    attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> transactionDate</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
    attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> transactionIdentifier</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
    attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> transactionReceipt</span><span style="color:#ffffff">;</span><span style="color:#ffffff">
    attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> transactionState</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

描述购买的IAP商品交易详细信息,如购买商品信息、交易日期、订单标识等。

属性:

  • payment: (String 类型 )购买商品的信息
  • transactionDate: (String 类型 )购买商品的交易日期
  • transactionIdentifier: (String 类型 )购买商品的交易订单标识
  • transactionReceipt: (String 类型 )购买商品的交易收据

    base64编码格式字符串数据。

  • transactionState: (String 类型 )购买商品的交易状态

    可取值:"1"为支付成功;"2"为支付失败;"3"为支付已恢复。

ChannelsSuccessCallback

获取支付通道成功回调

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span> <span style="color:#98fb98">ChannelsSuccessCallback</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> channels </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Get payment channels success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

当获取支付通道列表成功时的回调函数,用于返回终端支持的支付通道列表。

参数:

  • channels: ( Array[PaymentChannel] ) 必选 数组,系统支持的支付通道PaymentChannel列表

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

IapRequestOrderSuccessCallback

请求支付商品列表回调方法

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> onsuccess</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> results </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Payment success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

获取IAP商品列表信息成功时的回调函数,返回商品详细信息。

参数:

  • results: ( Array[IAPProduct] ) 必选 商品信息数据

返回值:

void : 无

平台支持:

  • Android - 2.2+ (不支持)
  • iOS - 5.0+ (支持)

IapRestoreComplateRequestCallback

请求已经购买的非消耗性商品和订阅商品回调方法

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> onsuccess</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> results </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Payment success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

获取IAP商品列表信息成功时的回调函数,返回商品详细信息。

参数:

  • results: ( Array[IAPTransaction] ) 必选 已购买的非消耗性商品和订阅商品交易信息

返回值:

void : 无

平台支持:

  • Android - 2.2+ (不支持)
  • iOS - 5.0+ (支持)

IapPaymentSuccessCallback

IAP支付操作成功回调

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span> <span style="color:#98fb98">PaymentSuccessCallback</span> <span style="color:#ffffff">(</span><span style="color:#ffffff"> result </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Payment success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

当支付操作成功时的回调函数,用于返回支付操作的成功信息。

参数:

  • result : IAPTransaction ) 必选 支付操作成功的信息

    苹果IAP支付返回的数据,类型为IAPTransaction。

返回值:

void : 无

平台支持:

  • Android - 2.2+ (不支持)
  • iOS - 5.0+ (支持)

PaymentSuccessCallback

支付操作成功回调

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span> <span style="color:#98fb98">PaymentSuccessCallback</span> <span style="color:#ffffff">(</span><span style="color:#ffffff"> result </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Payment success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

当支付操作成功时的回调函数,用于返回支付操作的成功信息。

参数:

  • result : PaymentResult ) 必选 支付操作成功的信息

    支付返回的数据,类型为PaymentResult。

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

PaymentErrorCallback

支付操作失败回调

<span style="color:#474747"><span style="background-color:#333333"><code>
<span style="color:#f0e68c"><strong>void</strong></span> <span style="color:#98fb98">PaymentErrorCallback</span><span style="color:#ffffff">(</span><span style="color:#ffffff">error</span><span style="color:#ffffff">){</span>
	<span style="color:#87ceeb">// Payment error code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

当支付操作失败时的回调函数,用于返回支付操作失败的错误信息。

参数:

  • error: ( Exception ) 必选 支付操作失败错误信息,可通过error.code获取错误代码,具体错误码有各支付通道定义

    支付宝支付错误代码如下: 62000,客户端未安装支付通道依赖的服务; 62001,用户取消支付操作; 62002,此设备不支持支付; 62003,数据格式错误; 62004,支付账号状态错误; 62005,订单信息错误; 62006,支付操作内部错误; 62007,支付服务器错误; 62008,网络问题引起的错误; 62009,其它未定义的错误。 微信支付错误代码如下: -1,一般错误; -2,用户取消; -3,发送失败; -4,认证被否决; -5,不支持错误。

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持)
  • iOS - 5.0+ (支持)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值