├── PCI Seamless.jpg ├── pay_via_m2u.png ├── Channel Logo ├── payment-channel-sprite.png └── payment-channel-sprite.css ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── FB App Seamless (example) ├── index(example).php └── molpay_facebook_seamless(example).js └── README.md /PCI Seamless.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RazerMS/Integration-RazerMS_JavaScript_Seamless_Integration/HEAD/PCI Seamless.jpg -------------------------------------------------------------------------------- /pay_via_m2u.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RazerMS/Integration-RazerMS_JavaScript_Seamless_Integration/HEAD/pay_via_m2u.png -------------------------------------------------------------------------------- /Channel Logo/payment-channel-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RazerMS/Integration-RazerMS_JavaScript_Seamless_Integration/HEAD/Channel Logo/payment-channel-sprite.png -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /FB App Seamless (example)/index(example).php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | FB Seamless Integration 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |   16 |
17 |
18 | 19 |
20 |
21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /Channel Logo/payment-channel-sprite.css: -------------------------------------------------------------------------------- 1 | #myPay { 2 | cursor:pointer; 3 | cursour:hand; 4 | } 5 | button[data-toggle="molpayseamless"]{ 6 | width:103px; height:48px;/* display: inline-block;*/border: 0px; 7 | } 8 | button[data-toggle="molpayseamless"] span{ 9 | width:103px; height:48px; display: inline-block; background-repeat: no-repeat; 10 | } 11 | #myPay1 span{ 12 | background-image: url('../img/payment-channel-sprite.png'); 13 | background-position: center 0px; 14 | } 15 | #myPay2 span{ 16 | background-image: url('../img/payment-channel-sprite.png'); 17 | background-position: center -104px; 18 | } 19 | #myPay3 span{ 20 | background-image: url('../img/payment-channel-sprite.png'); 21 | background-position: center -208px; 22 | } 23 | #myPay4 span{ 24 | background-image: url('../img/payment-channel-sprite.png'); 25 | background-position: center -312px; 26 | } 27 | #myPay5 span{ 28 | background-image: url('../img/payment-channel-sprite.png'); 29 | background-position: center -416px; 30 | } 31 | #myPay6 span{ 32 | background-image: url('../img/payment-channel-sprite.png'); 33 | background-position: center -520px; 34 | } 35 | #myPay7 span{ 36 | background-image: url('../img/payment-channel-sprite.png'); 37 | background-position: center -624px; 38 | } 39 | #myPay8 span{ 40 | background-image: url('../img/payment-channel-sprite.png'); 41 | background-position: center -728px; 42 | } 43 | #myPay9 span{ 44 | background-image: url('../img/payment-channel-sprite.png'); 45 | background-position: center -832px; 46 | } 47 | #myPay10 span{ 48 | background-image: url('../img/payment-channel-sprite.png'); 49 | background-position: center -936px; 50 | } 51 | 52 | #myPay1:active span{ 53 | background-image: url('../img/payment-channel-sprite.png'); 54 | background-position: center -52px; 55 | } 56 | #myPay2:active span{ 57 | background-image: url('../img/payment-channel-sprite.png'); 58 | background-position: center -156px; 59 | } 60 | #myPay3:active span{ 61 | background-image: url('../img/payment-channel-sprite.png'); 62 | background-position: center -260px; 63 | } 64 | #myPay4:active span{ 65 | background-image: url('../img/payment-channel-sprite.png'); 66 | background-position: center -364px; 67 | } 68 | #myPay5:active span{ 69 | background-image: url('../img/payment-channel-sprite.png'); 70 | background-position: center -468px; 71 | } 72 | #myPay6:active span{ 73 | background-image: url('../img/payment-channel-sprite.png'); 74 | background-position: center -572px; 75 | } 76 | #myPay7:active span{ 77 | background-image: url('../img/payment-channel-sprite.png'); 78 | background-position: center -676px; 79 | } 80 | #myPay8:active span{ 81 | background-image: url('../img/payment-channel-sprite.png'); 82 | background-position: center -780px; 83 | } 84 | #myPay9:active span{ 85 | background-image: url('../img/payment-channel-sprite.png'); 86 | background-position: center -884px; 87 | } 88 | #myPay10:active span{ 89 | background-image: url('../img/payment-channel-sprite.png'); 90 | background-position: center -988px; 91 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Integration] – RazerMS JavaScript Seamless Integration 2 | 3 | 4 | 5 | 6 | Introduction 7 | ----- 8 | 9 | Razer Merchant Services Seamless Integration offers better UX/UI during checkout to increase your conversion rate and reduce abandon or drop off rate. Buyer just need to click to popup the bank login page to proceed and authorize the payment without redirecting to Razer Merchant Services hosted payment page (better UX with lesser checkout step). Merchant or seller may customize their own look-and-feel on their checkout page (better and flexible UI). 10 | 11 | Razer Merchant Services Seamless Integration developed by Razer Merchant Services technical team. 12 | 13 | 14 | Razer Merchant Services无缝整合 15 | ===================== 16 | 17 | Razer Merchant Services无缝整合为商家提供了更好的用户体验和使用者界面,用户只须点击银行LOGO按钮就可以弹出登入界面,然后便可以直接登入应允支付,整个购买支付流程更快捷方便,界面也可以由商家自订,已被许多成功商家证实为非常简易且灵活的支付整合方式。 18 | 19 | 20 | Notes / Prerequisite 21 | ----- 22 | 23 | Razer Merchant Services Sdn. Bhd. is not responsible for any problems that might arise from the use of this module. 24 | Use at your own risk. Please backup any critical data before proceeding. For any query or 25 | assistance, please email to support-sa@razer.com 26 | 27 | 28 | Installations Guidance for Seamless 29 | -------------------------- 30 | 31 | [FB APP Seamless Integration](https://github.com/RazerMS/Seamless_Integration/wiki/Razer-Merchant-Services-FB-App-Seamless-Integration) 32 | 33 | Seamless Integration (non-PCI): 34 | - [Latest Version (Auto update)](https://github.com/RazerMS/Seamless_Integration/wiki/Latest-Razer-Merchant-Services-Seamless-Integration-(non-PCI)) **Update: 14/12/2021** - AlipayPlus 35 | - [Version 3.28](https://github.com/RazerMS/Seamless_Integration/wiki/Razer-Merchant-Services-Seamless-Integration-v3.28-(non-PCI)) 36 | - [Seamless for RMS Indonesia](https://github.com/RazerMS/Integration-RazerMS_JavaScript_Seamless_Integration/wiki/Razer-Merchant-Services-Seamless-Integration-for-RMS-Indonesia-(non-PCI)) 37 | 38 | 39 | ## Resources 40 | 41 | - GitHub: https://github.com/RazerMS 42 | - Website: https://merchant.razer.com/ 43 | - Twitter: https://twitter.com/Razer_MS 44 | - YouTube: https://www.youtube.com/c/RazerMerchantServices 45 | - Facebook: https://www.facebook.com/RazerMerchantServices/ 46 | - Instagram: https://www.instagram.com/RazerMerchantServices/ 47 | 48 | 49 | Known Issues 50 | ------------ 51 | - From Seamless Integration v3.12(non-PCI) -> Latest 52 | 53 | - Payment made from in-app browser (IAB) at Maybank2u, CIMB Clicks, Hong Leong Connect and AmBank will not return to the merchant website. 54 | 55 | Submit issue to this repository or email to our support-sa@razer.com 56 | 57 | 58 | Contact Support 59 | ------- 60 | 61 | Merchant Technical Support / Customer Care : support-sa@razer.com
62 | Sales/Reseller Enquiry : sales-sa@razer.com
63 | Marketing Campaign : marketing-sa@razer.com
64 | Channel/Partner Enquiry : channel-sa@razer.com
65 | Media Contact : media-sa@razer.com
66 | R&D and Tech-related Suggestion : technical-sa@razer.com
67 | Abuse Reporting : abuse-sa@razer.com 68 | -------------------------------------------------------------------------------- /FB App Seamless (example)/molpay_facebook_seamless(example).js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $.ajaxSetup({ 3 | cache: true 4 | }); //Enable catching - jQuery will timestamp by default. 5 | //$.getScript('//connect.facebook.net/en_US/sdk/debug.js', function(){ 6 | $.getScript('//connect.facebook.net/en_US/all.js', function() { 7 | 8 | FB.init({ 9 | appId: '(Your FB AppID)', 10 | }); 11 | 12 | FB.getLoginStatus(function(response) { 13 | if (response.status === 'connected') { 14 | console.log('Logged in.'); 15 | FB.api('/me', function(response) { 16 | // 17 | 18 | /*BELOW: 2 lines of code that set the bill_name and bill_email automatically. The setting is 19 | ** on data attributes. Then the rest is done as in usual seamless integration. 20 | ##USER: have to link to MOLPay facebook .js after linking to jQuery but before linking to 21 | ## MOLPay seamless .js. 22 | */ 23 | 24 | $('#molpay_btn').html(""); 25 | 26 | var var_mpsbill_name = response.name; 27 | var var_mpsbill_email = response.email; 28 | if ($("[data-toggle=\"molpayseamless\"]")) { 29 | $("[data-toggle=\"molpayseamless\"]").attr('data-mpsbill_name', var_mpsbill_name) 30 | } else { 31 | $("[data-toggle=molpayseamless]").attr('data-mpsbill_name', var_mpsbill_name); 32 | } //End of if() 33 | if ($("[data-toggle=\"molpayseamless\"]")) { 34 | $("[data-toggle=\"molpayseamless\"]").attr('data-mpsbill_email', var_mpsbill_email); 35 | } else { 36 | $("[data-toggle=molpayseamless]").attr('data-mpsbill_email', var_mpsbill_email); 37 | } //End of if() 38 | if ($("[data-toggle=\"molpayseamless\"]")) { 39 | $("[data-toggle=\"molpayseamless\"]").attr('data-mpsreturnurl', window.location.href); 40 | } else { 41 | $("[data-toggle=molpayseamless]").attr('data-mpsreturnurl', window.location.href); 42 | } //End of if() 43 | 44 | alert("BILL_NAME: " + $("[data-toggle=molpayseamless]").attr('data-mpsbill_name') + "\n\nBILL_EMAIL: " + $("[data-toggle=molpayseamless]").attr('data-mpsbill_email') + "\n\nBILL_AMOUNT: " + $("[data-toggle=molpayseamless]").attr('data-mpsamount') + "\n\nMERCHANTID: " + $("[data-toggle=molpayseamless]").attr('data-mpsmerchantid')); 45 | }); 46 | console.log('Logged in=> DONE'); 47 | } else { 48 | // 49 | console.log('NOT LOGGED IN'); 50 | FB.login(function(response) { 51 | // 52 | //alert("Login response...."); 53 | console.log('LOGIN RESPONSE....'); 54 | 55 | window.location = window.location.href; 56 | 57 | console.log('LOGIN RESPONSE....=> DONE'); 58 | }, { 59 | scope: 'public_profile,email' 60 | }); 61 | //alert("else"); 62 | console.log('NOT Logged in=> DONE'); 63 | } //End of if() 64 | }); 65 | }); 66 | }); 67 | --------------------------------------------------------------------------------