博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【React Native】react-native之集成支付宝支付、微信支付
阅读量:7239 次
发布时间:2019-06-29

本文共 3466 字,大约阅读时间需要 11 分钟。

一、在使用支付宝支付、微信支付之前导入桥接好的头文件

  github地址:

二、集成支付宝支付流程

  RN支付宝需要分别对iOS(Xcode)和安卓(AS)配置,与原生app相比只是将支付操作放在了RN当中。

  流程大同小异,一般都是从后台获取支付字符串,然后传递支付字符串调用支付宝SDK,SDK再调用支付宝的支付模块。如果用户已安装支付宝App,会跳转到支付宝支付。如果用户没有安装支付宝App,商家App内会调起支付宝网页支付收银台,用户登录支付宝账户支付。

  1、导入AlipaySDK(下载并引入)

  下载AlipaySDK地址:

  2、iOS(Xcode的配置)

    1)引入依赖库

    2)配置URL Types 

  3、创建Alipay.js文件

import {    NativeModules} from 'react-native';module.exports = NativeModules.ReactNativePay;

  4、在要支付界面引入Alipay.js文件

import Alipay from './Alipay';export default class App extends Component
{ render() { return (
this.aliPayAction("app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22seller_id%22%3A%22%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.02%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22314VYGIAGG7ZOYY%22%7D&charset=utf-8&method=alipay.trade.app.pay&sign_type=RSA2&timestamp=2016-08-15%2012%3A12%3A15&version=1.0&sign=MsbylYkCzlfYLy9PeRwUUIg9nZPeN9SfXPNavUCroGKR5Kqvx0nEnd3eRmKxJuthNUx4ERCXe552EV9PfwexqW%2B1wbKOdYtDIb4%2B7PL3Pc94RZL0zKaWcaY3tSL89%2FuAVUsQuFqEJdhIukuKygrXucvejOUgTCfoUdwTi7z%2BZzQ%3D")}>
点击支付
); } aliPayAction(payStr) { Alipay.onAliPay(payStr) .then((message)=>{ console.log("message" + message); if(message !== "") //支付成功的处理 this.refs.toast.show(message, DURATION.LENGTH_SHORT); }) .catch(e=>{ console.log("e.message" + e.message); if(e.message !== "") this.refs.toast.show(e.message, DURATION.LENGTH_SHORT); if(e.code === '-1' || e.message === '支付失败') { //支付失败 } }) }}

三、集成微信支付

  1、导入微信支付SDK

  下载微信支付SDK地址:

  2、具体配置,参考API文档就行,不多做描述了。

  3、具体使用

// 微信支付  wxPayAction(){    this.setState({payInfo:Testing.getTestPay(responseJson.data)});//转成payInfo模型    let sign = this.getPaySignStrMethod(this.state.payInfo);    if(sign==null){      this.refs.toast.show("支付信息请求错误", DURATION.LENGTH_SHORT); return; }      var params = { partnerId:this.state.payInfo.partnerId, prepayId:this.state.payInfo.prepayId, package:this.state.payInfo.package, nonceStr:this.state.payInfo.nonceStr, timeStamp:this.state.payInfo.timeStamp, sign:sign, }      Pay.onWxPay(params) .then((message)=>{        console.log("message" + message);        if(message !== "") this.refs.toast.show(message, DURATION.LENGTH_SHORT);          //支付成功的处理      }).catch(e=>{        console.log("e.message" + e.message);        if(e.message !== "") this.refs.toast.show(e.message, DURATION.LENGTH_SHORT);        if(e.code === '-1' || e.message === '支付失败') {          //支付失败的处理        }      });  }  getPaySignStrMethod=(payInfo)=>{    if(payInfo.appId !== undefined && payInfo.appId !== '' && payInfo.nonceStr !== undefined && payInfo.nonceStr !== '' && payInfo.partnerId !== undefined && payInfo.partnerId !== ''  && payInfo.prepayId !== undefined && payInfo.prepayId !== '' && payInfo.timeStamp !== undefined && payInfo.timeStamp !== '') {      return "appid=" + payInfo.appId + "&noncestr=" + payInfo.nonceStr + "&package=" + payInfo.package + "&partnerid=" + payInfo.partnerId + "&prepayid=" + payInfo.prepayId + "&timestamp=" + payInfo.timeStamp + "&key=" + C.weChatPayKey;    }else {      return null    }  }

    参考连接:https://www.meiwen.com.cn/subject/appxqqtx.html

转载于:https://www.cnblogs.com/xjf125/p/11003125.html

你可能感兴趣的文章
MFC——从实现角度分析微云界面
查看>>
正则 群组 Group
查看>>
An Introduction To The SQLite C/C++ Interface
查看>>
关闭Pycharm拼写检查
查看>>
一个优秀的程序员是如何炼成的?
查看>>
区块链的12个技术理解误区,你知道哪些?
查看>>
常用面试编程训练5大网站!
查看>>
对比三大旗舰真正全面屏,荣耀Magic2不学OV,绝不妥协
查看>>
SMILEY黄色笑脸攻占华为授权体验店 网友惊呼“太魔性”!
查看>>
陈林接替张一鸣任今日头条CEO 字节跳动学谷歌进行架构升级
查看>>
万盏彩灯迎新春 江苏大丰梅花湾新春灯会小年夜亮灯
查看>>
33名中国游客护照被偷 驻意大利使馆加班办证获赞
查看>>
天津一商场还原80、90年代家庭过年场景
查看>>
「每天一道面试题」说一下Spring框架中Bean的生存周期
查看>>
云南加快发展乡村旅游 摆脱“美丽的贫困”
查看>>
五大联赛半程战罢:三卫冕冠军强势 两队欲颠覆王权
查看>>
银川机场4万张机场巴士免票送高校学生
查看>>
高校获批数据科学与大数据技术专业,《云计算》教材怎么选?
查看>>
前端面试查漏补缺--Index篇(12万字符合集)
查看>>
大白话说java并发工具类-CountDownLatch,CyclicBarrier
查看>>