├── 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 |
--------------------------------------------------------------------------------