参考文档:http://www.html5plus.org/doc/zh_cn/payment.html

申请内购项目摘自 https://www.jianshu.com/p/1e79bfbe46e2

<template>
<div id="app">
<h3 @click="pay(ids[0])"></h3>
</div>
</template> <script>
export default {
data() {
return {
iap: {},
ids: ["donation6","donation"],//应用内购项目,需要申请
}
},
created() {
document.addEventListener("plusready", function() {
//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
});
document.addEventListener("plusready",this.plusReady(),false);
},
methods: {
plusReady() {
let _this = this;
// 获取支付通道
plus.payment.getChannels(
function(channels) {
for (var i in channels) {
var channel = channels[i];
// 用于标识支付通道: "alipay" - 表示支付宝; "wxpay" - 表示微信支付; "appleiap" - 表示苹果应用内支付; "qhpay" - 表示360聚合支付(仅360手助流应用环境下支持)。
if (channel.id === "appleiap") {
_this.iap = channel;
_this.requestOrder();
}
}
},
function(e) {
console.log("获取支付通道失败:" + e.message);
}
);
},
requestOrder() {
let _this = this;
plus.nativeUI.showWaiting("检测支付环境...");
_this.iap.requestOrder(_this.ids,function(e) {
plus.nativeUI.closeWaiting();
console.log("requestOrder success: " + JSON.stringify(e));
},function(e) {
console.log("requestOrder failed: " + JSON.stringify(e));
plus.nativeUI.closeWaiting();
plus.nativeUI.confirm("错误信息:" + JSON.stringify(e),
function(e) {
if (e.index == 0) {
_this.requestOrder();
} else {
// back();
}
},
"重新请求支付",["确定", "取消"]
);
}
);
},
// 支付
pay(id) {
let _this = this;
plus.nativeUI.showWaiting("", {style: "black",background: "rgba(0,0,0,0)"});
plus.payment.request(_this.iap,{ productid: id },function(result) {
plus.nativeUI.closeWaiting();
_this.fetchPayStatus(result);
},
function(e) {
console.log("错误信息",e)
plus.nativeUI.closeWaiting();
plus.nativeUI.alert(
"错误信息:" + e.message,
null,
"支付失败:" + e.code
);
}
);
},
fetchPayStatus(result) {
// let ordercode = window.location.href.split("ordercode=")[1]; //收集支付需要专递的参数
// console.log("ordercode", ordercode);
axios({
method: "post",
url: "https://pay.52xxxxxdd.cn/PaiyxApxxxxxple/appxxxxxxcion",//换成自己请求支付的接口
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Accept: "application/json, text/plain, */*"
},
data: `transactionId=${result.transactionIdentifier}&receipt=${result.transactionReceipt}`,//传递的参数
})
// .then(res => {
// if(res.data.code === 1){
// window.location.href = `${window.location.origin}/bzjp/detail.html?ordercode=${ordercode}`;
// }
// });
},
}
}
</script>

H5调起IOS原生商店支付的更多相关文章

  1. h5 调起ios数字键盘的坑,限制特殊字符输入方案

    最近有个需求是利率只允许输入数字和小数点,用以下 <input type="number" pattern="[0-9]*"> 在ios会调起数字键 ...

  2. 混合app开发,h5页面调用ios原生APP的接口

    混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H ...

  3. Android H5调起原生微信或支付宝支付

    Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String ...

  4. 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

    先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...

  5. Java微信公众平台开发之公众号支付(微信内H5调起支付)

    官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公 ...

  6. java版微信公众号支付(H5调微信内置API)

    最近需要做微信公众号支付,网上找了大堆的代码,大多都只说了个原理,自己踩了太多坑,所有的坑,都会再下面的文章中标注,代码我也贴上最全的(叫我雷锋)!!! 第一步:配置支付授权目录 你需要有将你公司的微 ...

  7. vue 微信内H5调起支付

    在微信内H5调起微信支付,主要依赖于一个微信的内置对象WeixinJSBridge,这个对象在其他浏览器中无效. 主要代码: import axios from 'axios'; export def ...

  8. iOS原生App与H5页面交互笔记

    文/MikeZhangpy(简书作者)原文链接:http://www.jianshu.com/p/4ed3e5ed99c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 最近在做一个项 ...

  9. IOS开发--支付宝支付

    前言:继上次<IOS开发--微信支付>以来,一直没有太多时间,更新总结详细支付这样的长篇大论,很抱歉.今天,推出支付宝支付的详细流程. 1.开始下载和查看支付宝支付的Demo. 我们直接进 ...

随机推荐

  1. CTF 文件包含

    目录 一.基本概念 二.本地文件包含 三.远程文件包含 四.具体场景 五.补充 一.基本概念 文件包含 将相同函数写入单独的文件中,需要使用时直接调用 文件包含漏洞 将被包含的文件设置为变量,导致客户 ...

  2. Runtime Only和Runtime + Compiler

    如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器,即完整版 当使用 vue-loader ...

  3. git 只提交部分修改文件

    1.git status //查看修改文件状态 2.git add  //将想要提交的文件add到本地库 4.git status  //查看修改文件状态 3.git commit  //提交add到 ...

  4. DOM 是什么,Document Object Model,文档对像模型

    #为什么会想起来写这个 在写dynaTrace Ajax的时候,写到这个是个前端性能测试工具,这个工具能记录请求时间,前端页面渲染时间,DOM方法执行时间,以及JavaScript代码解析和执行时间. ...

  5. nginx支持websocket及websocket部分原理介绍

    nginx支持websocket及websocket部分原理介绍最近ipc通过websocket与server进行通行,经过无法通过nginx进行反向代理,只有直连nodejs端口.而且部署到阿里云用 ...

  6. Xamarin图表开发基础教程(9)OxyPlot框架

    Xamarin图表开发基础教程(9)OxyPlot框架 OxyPlot组件构成 OxyPlot组件主要由两个类构成,分别为PlotView和PlotModel.这两个类我们在上文中也使用到了.本节将讲 ...

  7. 运维笔记--Linux查找指定目录下某段时间的文件

    查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...

  8. LODOP设置某打印项锁定下边距

    LODOP中的打印项定位都是按照top值(顶边距),left(左边距)来决定的 ,不能直接设置某打印项的下边距.此外,打印项的位置还受PRINT_INTA的前两个整体偏移值,打印机可打区域的影响.该文 ...

  9. [LeetCode] 773. Sliding Puzzle 滑动拼图

    On a 2x3 board, there are 5 tiles represented by the integers 1 through 5, and an empty square repre ...

  10. python+lego ev3的心得总结 随时更新

    一.连接方面 1.试了蓝牙连接,被电脑防火墙拒绝了很多次,很奇怪,明明都pin码都对上了,然后瞬间被踢开. 2.数据线直连,在一台win7上怎么试也不行,在另一台上自动上windows update上 ...