MIP 支付组件,支付流程:

MIP 支付组件,支付流程:
这里写图片描述

标题内容
类型通用
支持布局responsive,fixed-height,fill,container,fixed
所需脚本https://c.mipcdn.com/static/v1/mip-simple-pay/mip-simple-pay.js,https://c.mipcdn.com/static/v1/mip-login-xzh/mip-login-xzh.js

注意:支付组件所需脚本链接需要前置到登录组件脚本链接前面。

示例

多组件联调数据
<mip-simple-pay
    data-endpoint="https://pay.mipengine.org"id="mypay"
><!-- 可以配置多个静态的支付数据 --><script type="application/json">{}</script>
</mip-simple-pay><!-- 自定义组件,如订单生成组件,成功后触发支付组件的添加数据接口,并提交支付 -->
<mip-demo on="success:mypay.addEventData success:mypay.pay">
</mip-demo><mip-login-xzh
    data-endpoint="https://xzh.mip.xuexb.com"data-autologin="true"on="login:mypay.setSessionId"id="user">        
</mip-login-xzh><!-- mip-demo 触发添加数据示例 -->
<script>var viewer = require('viewer');Demo.prototype.build = function () {// 在订单成功后触发自身组件的 success 提交成功事件viewer.eventAction.execute('success', this.element, {data: {orderId: 1,// 这里的数据将直接合并到支付数据中}});};
</script>

属性

data-endpoint

说明:后端源站支付接口链接,需要使用 https:// 或者 // 开头的源站地址,需要接口支持 HTTPS ,使用 POST 形式发送数据
必选项:是
类型:string
示例:data-endpoint=”https://api.example.com/pay.php”
说明:后端跨域说明 、后端数据说明 、会话凭证 sessionId

组件方法和事件

设置会话标识方法 - <mip-login-xzh on="login:支付组件id.setSessionId">

由登录组件完成登录后透传会话标识到支付组件,源字段为:event.sessionId 。

添加支付数据方法 - <mip-demo on="事件名称:支付组件id.addEventData">

由其他组件透传数据到支付组件中,源字段为:event.data ,会深度合并到支付数据中,常见于订单生成成功、收货地址保存成功等场景,如:

var viewer = require('viewer');Demo.prototype.build = function () {viewer.eventAction.execute('事件名称', this.element, {data: {orderId: 1,// 这里的数据将直接合并到支付数据中}});
};
提交支付方法 - <mip-demo on="事件名称:支付组件id.pay">

触发提交支付数据,常见于订单生成功后添加数据到支付组件后调用,也可由用户点击按钮时调用。

提交数据前事件 - <mip-simple-pay on="ajaxBefore:其他组件id.其他组件行为">

提交支付数据前触发。

提交数据完成事件 - <mip-simple-pay on="ajaxComplete:其他组件id.其他组件行为">

提交支付数据完成后触发,不论成功或者失败都会触发。

提交数据失败事件 - <mip-simple-pay on="error:其他组件id.其他组件行为">

提交支付数据失败时触发。

注意事项

1、后端需要支持 CORS + withCredentials

CORS 文档
withCredentials 附带身份凭证的请求
支付组件(mip-simple-pay)已经在前端发送请求时处理了 withCredentials ,需要对应的接口服务响应头设置:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: 对应请求的 origin

注意:出于安全考虑请对来源的 origin 进行判断,并正确的返回 Access-Control-Allow-Origin 字段,不能为 *

2. 后端数据说明

请求:

名称说明
请求链接data-endpoint
请求类型POST
请求参数{sessionId: '会话凭证', state: '需要在支付完成后回传给 MIP oob 回调链接中', ...}

异常情况,status0 时为失败:

{"status": 403
}

成功:

{"status": 0,"data": {"url": "https://付款链接"}
}

注意:付款成功后回调链接应该为源站后端订单处理链接,如:https://支付链接?callback=urlencode('https://api.mipengine.org/order?id=1') ,回调链接(https://api.mipengine.org/order?id=1)在支付完成后处理完成订单数据后重定向到 MIP oob 支付回调链接中,并携带参数,如:

格式如:

https://域名(.换成-).mipcdn.com/static/oob/simple-pay.html?state=回传&redirect_url=显示支付完成页面,必须是MIP页面
示例如:

https://www-mipengine-org.mipcdn.com/static/oob/simple-pay.html?state=xxxxx&redirect_url=urlencode(‘https://mip.mipengine.org/order.html?id=1‘)

  1. 会话凭证 sessionId
    由于在 iOS 对跨域透传 cookie 的限制(https://webkit.org/blog/7675/intelligent-tracking-prevention/),由登录组件统一记录会话标识,并透传给支付组件,在发送支付请求时携带,后端应该优先使用 cookie > sessionId 校验登录状态。

  2. 百度搜索结果页降级处理
    在百度搜索页打开使用该组件页面时,由于有些支付密码输入框在 iframe 框架下有问题,在调用提交支付接口时做了降级处理,处理方式为跳转源站。包括以下设备、浏览器:

iOS设备下的手百App

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码实现——MapReduce统计单词出现次数

需求 对以下txt文档进行单词出现次数统计&#xff08;txt文档在/Users/lizhengi/test/input/目录下&#xff09; hadoop take spring spark hadoop hdfs mapreduce take Tomcat tomcat kafka kafka flume flume hive实现 1、新建Maven工程&#xff0c;pom.xml依赖如下 <…

MIP个性化组件提交规范

MIP个性化组件一般用来实现前后端数据传输或特殊的交互效果&#xff0c;由广大开发者贡献。出于性能、可维护性等方面的考虑&#xff0c;开发者在新增组件或升级组件时&#xff0c;请遵守以下规范。 规范中的必须&#xff08;MUST&#xff09;&#xff0c;禁止&#xff08;MUS…

jar包在Hadoop集群上测试(MapReduce)

本片使用MapReduce——统计输出给定的文本文档每一个单词出现的总次数的案例进行&#xff0c;jar包在集群上测试 1、添加打包插件依赖 <build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.6.2</versio…

代码实现——MapReduce实现Hadoop序列化

简单介绍 1、什么是序列化 序列化&#xff1a;把内存中的对象&#xff0c;转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化&#xff1a;将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据&#xff0c;转换成内存中的对象。 2、 为…

日常问题——hadoop启动后发现namenode没有启动,但是排除了格式化过度的问题

hadoop启动后发现namenode没有启动&#xff0c;网上说的格式化过度的问题我是没有的&#xff0c;因为我只格式化过一次。之后查看日志 vim /opt/hadoop/logs/namenode对应的log文件 发现 2020-03-03 23:16:21,868 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Na…

Zookeeper3.6.1常用的Shell命令

1、客户端连接 zkCli.sh zkCli.sh -server host:port2、显示节点信息 -s状态 -w监听器 -R递归 ls [-s] [-w] [-R] path3、创建节点 -s加序列号 -e临时节点 create [-s] [-e] path [data]4、获取节点值 -s状态 -w监听器 get [-s] [-w] path5、设置节点值 -s状态 set [-s] […

CentOS7下MySQL5.7的安装

1、下载MySQL 安装包&#xff1a; wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmyum -y localinstall mysql57-community-release-el7-11.noarch.rpm 2、在线安装MySQL yum -y install mysql-community-server 3、启动mysql 服务 systemct…

CentOS7下Hive的安装配置

0、安装前提 安装配置jdk与hadoop安装配置好mysql 1、下载上传 下载hive&#xff0c;地址:http://mirror.bit.edu.cn/apache/hive/上传到指定位置scp apache-hive-3.1.2-bin.tar.gz rootCarlota1:/usr/local/apps 2、解压安装 tar -zxvf apache-hive-3.1.2-bin.tar.gzmv a…

Hive常用的操作命令

Hive常用的交互命令 hive 进入数据库hive -e 不进入hive的交互窗口执行sql语句hive -f 执行sql脚本hive -help 查看帮助 Hive常用数据库的操作命令 show databases;查看hive中的所有数据库use default;用default数据库create database myhive ;创建数据库create database if…

Hive常见的属性配置

配置文件 默认配置文件&#xff1a;hive-default.xml 用户自定义配置文件&#xff1a;hive-site.xml 用户自定义配置会覆盖默认配置。另外&#xff0c;Hive也会读入Hadoop的配置&#xff0c;因为Hive是作为Hadoop的客户端启动的&#xff0c;Hive的配置会覆盖Hadoop的配置。配…

什么是集群(cluster)

1、集群 1.1 什么是集群 简单的说&#xff0c;集群(cluster)就是一组计算机&#xff0c;它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是&#xff0c;用户从来不会意识到集群系统底层的节点&#xff0c;在他/她们看来&am…

Kafka:集群部署

0、环境准备 安装jdk&#xff0c;配置环境提前安装zookeeper 1、解压安装 将tar压缩包上传tar -zxvf kafka_2.12-2.5.0.tgz 2、配置变量环境 vi /etc/profile #kafka export KAFKA_HOME/usr/local/apps/kafka_2.12-2.5.0 export PATH$PATH:$KAFKA_HOME/binsource /etc/pr…

集群(cluster)amp;高可用性(HA)概念

1.1 什么是集群 简单的说&#xff0c;集群&#xff08;cluster&#xff09;就是一组计算机&#xff0c;它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点&#xff08;node&#xff09;。一个理想的集群是&#xff0c;用户从来不会意识到集群系…

Kafka:常用命令

启动Kafka&#xff1a;kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties创建一个叫test的话题&#xff0c;有两个分区&#xff0c;每个分区3个副本&#xff1a;kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 …

MySQL Cluster 群集安装环境介绍

MySQL Cluster 群集安装环境介绍 MySQL 群集支持的操作系统:* Linux (Red Hat, Novell/SUSE) * Sun Solaris * IBM AIX * HP-UX * Mac OS X MySQL 软件:* MySQL Max 版本 (並不是指 MaxDB)* MySQL NDB Cluster 系统最低需求&#xff1a; OS&#xff1a; Linux ( Turbolinux…

八股文打卡day9——计算机网络(9)

面试题&#xff1a;HTTP1.0和HTTP1.1的区别&#xff1f; 我的回答&#xff1a; 1.长连接&#xff1a;HTTP1.1引入了长连接的机制&#xff0c;connection&#xff1a;keep-alive。一个TCP连接可以进行多次请求和响应。而HTTP1.0每次请求响应一次都得建立连接、断开连接。 引入…

使用ogg实现oracle到kafka的增量数据实时同步

Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件&#xff0c;它通过解析源数据库在线日志或归档日志获得数据的增量变化&#xff0c;再将这些变化应用到目标数据库&#xff0c;从而实现源数据库与目标数据库同步。 0、本篇中源端和目标端的一些配置信息&#xf…

转载:35岁前成功的12条黄金法则

习惯的力量是惊人的。习惯能载着你走向成功&#xff0c;也能驮着你滑向失败。如何选择&#xff0c;完全取决于你自己。 1.习惯的力量&#xff1a;35岁以前养成好习惯 你想成功吗&#xff1f;那就及早培养有利于成功的好习惯。 习惯的力量是惊人的&#xff0c;35岁…

JDK源码解析之 Java.lang.Object

Object类是Java中其他所有类的祖先&#xff0c;没有Object类Java面向对象无从谈起。作为其他所有类的基类&#xff0c;Object具有哪些属性和行为&#xff0c;是Java语言设计背后的思维体现。 Object类位于java.lang包中&#xff0c;java.lang包包含着Java最基础和核心的类&…

将z-blog改成英文blog所遇到的问题

1.将z-blog中文章日期中的“年,月,日”改成英文 相关模板:b_article-multi.htmlb_article-single.html默认用的时间标签是<#article/posttime/longdate#> 即 "2007年1月13日" 这样的形式你可以换成 <#article/posttime/shortdate#>即 "2…