经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » React » 查看文章
【React Native】react-native之集成支付宝支付、微信支付
来源:cnblogs  作者:零零圈圈  时间:2019/6/12 12:08:07  对本文有异议

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

  github地址:https://github.com/xujianfu/react-native-pay

二、集成支付宝支付流程

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

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

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

  下载AlipaySDK地址:https://docs.open.alipay.com/54/104509

  2、iOS(Xcode的配置)

    1)引入依赖库

    2)配置URL Types 

  3、创建Alipay.js文件

  1. import {
  2. NativeModules
  3. } from 'react-native';
  4. module.exports = NativeModules.ReactNativePay;

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

  1. import Alipay from './Alipay';
  2. export default class App extends Component<Props> {
  3. render() {
  4. return (
  5. <View style={styles.container}>
  6. <TouchableOpacity onPress={()=>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")}>
  7. <Text>点击支付</Text>
  8. </TouchableOpacity>
  9. </View>
  10. );
  11. }
  12. aliPayAction(payStr) {
  13. Alipay.onAliPay(payStr) .then((message)=>{
  14. console.log("message" + message); if(message !== "")
  15. //支付成功的处理
  16. this.refs.toast.show(message, DURATION.LENGTH_SHORT);
  17. }) .catch(e=>{
  18. console.log("e.message" + e.message);
  19. if(e.message !== "") this.refs.toast.show(e.message, DURATION.LENGTH_SHORT);
  20. if(e.code === '-1' || e.message === '支付失败') {
  21. //支付失败
  22. }
  23. })
  24. }
  25. }

三、集成微信支付

  1、导入微信支付SDK

  下载微信支付SDK地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

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

  3、具体使用

  1. // 微信支付
  2. wxPayAction(){
  3. this.setState({payInfo:Testing.getTestPay(responseJson.data)});//转成payInfo模型
  4. let sign = this.getPaySignStrMethod(this.state.payInfo);
  5. if(sign==null){
  6. this.refs.toast.show("支付信息请求错误", DURATION.LENGTH_SHORT); return; }
  7. 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, }
  8. Pay.onWxPay(params) .then((message)=>{
  9. console.log("message" + message);
  10. if(message !== "") this.refs.toast.show(message, DURATION.LENGTH_SHORT);
  11. //支付成功的处理
  12. }).catch(e=>{
  13. console.log("e.message" + e.message);
  14. if(e.message !== "") this.refs.toast.show(e.message, DURATION.LENGTH_SHORT);
  15. if(e.code === '-1' || e.message === '支付失败') {
  16. //支付失败的处理
  17. }
  18. });
  19. }
  20. getPaySignStrMethod=(payInfo)=>{
  21. 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 !== '') {
  22. return "appid=" + payInfo.appId + "&noncestr=" + payInfo.nonceStr + "&package=" + payInfo.package + "&partnerid=" + payInfo.partnerId + "&prepayid=" + payInfo.prepayId + "&timestamp=" + payInfo.timeStamp + "&key=" + C.weChatPayKey;
  23. }else {
  24. return null
  25. }
  26. }

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

原文链接:http://www.cnblogs.com/xjf125/p/11003125.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号